LCOV - code coverage report
Current view: top level - acl/aclrt_impl/toolchain - profiling_manager.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 98.1 % 54 53
Test Date: 2026-07-28 10:53:01 Functions: 87.5 % 8 7

            Line data    Source code
       1              : /**
       2              :  * Copyright (c) 2025 Huawei Technologies Co., Ltd.
       3              :  * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
       4              :  * CANN Open Software License Agreement Version 2.0 (the "License").
       5              :  * Please refer to the License for details. You may not use this file except in compliance with the License.
       6              :  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
       7              :  * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
       8              :  * See LICENSE in the root of the software repository for the full text of the License.
       9              :  */
      10              : 
      11              : #include "profiling_manager.h"
      12              : #include "mmpa/mmpa_api.h"
      13              : #include "common/log_inner.h"
      14              : #include "common/prof_reporter.h"
      15              : 
      16              : namespace acl {
      17              : const std::map<AclProfType, std::string> PROF_TYPE_TO_NAMES = {
      18              :     {AclProfType::AclmdlRIExecuteAsync, "aclmdlRIExecuteAsync"},
      19              :     {AclProfType::AclmdlRIDestroy, "aclmdlRIDestroy"},
      20              :     {AclProfType::AclmdlRICaptureBegin, "aclmdlRICaptureBegin"},
      21              :     {AclProfType::AclmdlRICaptureGetInfo, "aclmdlRICaptureGetInfo"},
      22              :     {AclProfType::AclmdlRICaptureEnd, "aclmdlRICaptureEnd"},
      23              :     {AclProfType::AclmdlRIDebugPrint, "aclmdlRIDebugPrint"},
      24              :     {AclProfType::AclmdlRIDebugJsonPrint, "aclmdlRIDebugJsonPrint"},
      25              :     {AclProfType::AclmdlRICaptureThreadExchangeMode, "aclmdlRICaptureThreadExchangeMode"},
      26              :     {AclProfType::AclmdlRICaptureTaskGrpBegin, "aclmdlRICaptureTaskGrpBegin"},
      27              :     {AclProfType::AclmdlRICaptureTaskGrpEnd, "aclmdlRICaptureTaskGrpEnd"},
      28              :     {AclProfType::AclmdlRICaptureTaskUpdateBegin, "aclmdlRICaptureTaskUpdateBegin"},
      29              :     {AclProfType::AclmdlRICaptureTaskUpdateEnd, "aclmdlRICaptureTaskUpdateEnd"},
      30              :     {AclProfType::AclCreateDataBuffer, "aclCreateDataBuffer"},
      31              :     {AclProfType::AclrtLaunchCallback, "aclrtLaunchCallback"},
      32              :     {AclProfType::AclrtProcessReport, "aclrtProcessReport"},
      33              :     {AclProfType::AclrtCreateContext, "aclrtCreateContext"},
      34              :     {AclProfType::AclrtDestroyContext, "aclrtDestroyContext"},
      35              :     {AclProfType::AclrtSetCurrentContext, "aclrtSetCurrentContext"},
      36              :     {AclProfType::AclrtGetCurrentContext, "aclrtGetCurrentContext"},
      37              :     {AclProfType::AclrtSetDevice, "aclrtSetDevice"},
      38              :     {AclProfType::AclrtSetDeviceWithoutTsdVXX, "aclrtSetDeviceWithoutTsdVXX"},
      39              :     {AclProfType::AclrtResetDevice, "aclrtResetDevice"},
      40              :     {AclProfType::AclrtResetDeviceForce, "aclrtResetDeviceForce"},
      41              :     {AclProfType::AclrtResetDeviceWithoutTsdVXX, "aclrtResetDeviceWithoutTsdVXX"},
      42              :     {AclProfType::AclrtSynchronizeDevice, "aclrtSynchronizeDevice"},
      43              :     {AclProfType::AclrtSynchronizeDeviceWithTimeout, "aclrtSynchronizeDeviceWithTimeout"},
      44              :     {AclProfType::AclrtSetTsDevice, "aclrtSetTsDevice"},
      45              :     {AclProfType::AclrtCreateEvent, "aclrtCreateEvent"},
      46              :     {AclProfType::AclrtCreateEventWithFlag, "aclrtCreateEventWithFlag"},
      47              :     {AclProfType::AclrtCreateEventExWithFlag, "aclrtCreateEventExWithFlag"},
      48              :     {AclProfType::AclrtDestroyEvent, "aclrtDestroyEvent"},
      49              :     {AclProfType::AclrtRecordEvent, "aclrtRecordEvent"},
      50              :     {AclProfType::AclrtRecordEventWithFlag, "aclrtRecordEventWithFlag"},
      51              :     {AclProfType::AclrtResetEvent, "aclrtResetEvent"},
      52              :     {AclProfType::AclrtQueryEvent, "aclrtQueryEvent"},
      53              :     {AclProfType::AclrtQueryEventStatus, "aclrtQueryEventStatus"},
      54              :     {AclProfType::AclrtQueryEventWaitStatus, "aclrtQueryEventWaitStatus"},
      55              :     {AclProfType::AclrtSynchronizeEvent, "aclrtSynchronizeEvent"},
      56              :     {AclProfType::AclrtSetOpWaitTimeout, "aclrtSetOpWaitTimeout"},
      57              :     {AclProfType::AclrtSetOpExecuteTimeOut, "aclrtSetOpExecuteTimeOut"},
      58              :     {AclProfType::AclrtSetOpExecuteTimeOutWithMs, "aclrtSetOpExecuteTimeOutWithMs"},
      59              :     {AclProfType::AclrtSetGroup, "aclrtSetGroup"},
      60              :     {AclProfType::AclrtGetGroupCount, "aclrtGetGroupCount"},
      61              :     {AclProfType::AclrtGetAllGroupInfo, "aclrtGetAllGroupInfo"},
      62              :     {AclProfType::AclrtGetGroupInfoDetail, "aclrtGetGroupInfoDetail"},
      63              :     {AclProfType::AclMallocMemInner, "aclMallocMemInner"},
      64              :     {AclProfType::AclrtMallocCached, "aclrtMallocCached"},
      65              :     {AclProfType::AclrtMemFlush, "aclrtMemFlush"},
      66              :     {AclProfType::AclrtMemInvalidate, "aclrtMemInvalidate"},
      67              :     {AclProfType::AclrtFree, "aclrtFree"},
      68              :     {AclProfType::AclrtMallocHost, "aclrtMallocHost"},
      69              :     {AclProfType::AclrtFreeHost, "aclrtFreeHost"},
      70              :     {AclProfType::AclrtMemcpy, "aclrtMemcpy"},
      71              :     {AclProfType::AclrtMemset, "aclrtMemset"},
      72              :     {AclProfType::AclrtMemcpyAsync, "aclrtMemcpyAsync"},
      73              :     {AclProfType::AclrtMemcpyAsyncWithCondition, "aclrtMemcpyAsyncWithCondition"},
      74              :     {AclProfType::AclrtMemsetAsync, "aclrtMemsetAsync"},
      75              :     {AclProfType::AclrtDeviceCanAccessPeer, "aclrtDeviceCanAccessPeer"},
      76              :     {AclProfType::AclrtDeviceEnablePeerAccess, "aclrtDeviceEnablePeerAccess"},
      77              :     {AclProfType::AclrtDeviceDisablePeerAccess, "aclrtDeviceDisablePeerAccess"},
      78              :     {AclProfType::AclrtGetMemInfo, "aclrtGetMemInfo"},
      79              :     {AclProfType::AclrtMemcpy2d, "aclrtMemcpy2d"},
      80              :     {AclProfType::AclrtMemcpy2dAsync, "aclrtMemcpy2dAsync"},
      81              :     {AclProfType::AclrtCreateStream, "aclrtCreateStream"},
      82              :     {AclProfType::AclrtCreateStreamWithConfig, "aclrtCreateStreamWithConfig"},
      83              :     {AclProfType::AclrtDestroyStream, "aclrtDestroyStream"},
      84              :     {AclProfType::AclrtDestroyStreamForce, "aclrtDestroyStreamForce"},
      85              :     {AclProfType::AclrtSynchronizeStream, "aclrtSynchronizeStream"},
      86              :     {AclProfType::AclrtSynchronizeStreamWithTimeout, "aclrtSynchronizeStreamWithTimeout"},
      87              :     {AclProfType::AclrtStreamQuery, "aclrtStreamQuery"},
      88              :     {AclProfType::AclrtStreamGetPriority, "aclrtStreamGetPriority"},
      89              :     {AclProfType::AclrtStreamGetFlags, "aclrtStreamGetFlags"},
      90              :     {AclProfType::AclrtStreamWaitEvent, "aclrtStreamWaitEvent"},
      91              :     {AclProfType::AclrtStreamWaitEventWithFlag, "aclrtStreamWaitEventWithFlag"},
      92              :     {AclProfType::AclrtStreamWaitEventWithTimeout, "aclrtStreamWaitEventWithTimeout"},
      93              :     {AclProfType::AclrtAllocatorCreateDesc, "aclrtAllocatorCreateDesc"},
      94              :     {AclProfType::AclrtAllocatorDestroyDesc, "aclrtAllocatorDestroyDesc"},
      95              :     {AclProfType::AclrtCtxGetSysParamOpt, "aclrtCtxGetSysParamOpt"},
      96              :     {AclProfType::AclrtCtxSetSysParamOpt, "aclrtCtxSetSysParamOpt"},
      97              :     {AclProfType::AclrtGetOverflowStatus, "aclrtGetOverflowStatus"},
      98              :     {AclProfType::AclrtResetOverflowStatus, "aclrtResetOverflowStatus"},
      99              :     {AclProfType::AclrtGetDeviceCount, "aclrtGetDeviceCount"},
     100              :     {AclProfType::AclrtGetDevice, "aclrtGetDevice"},
     101              :     {AclProfType::AclrtMalloc, "aclrtMalloc"},
     102              :     {AclProfType::AclrtSetStreamFailureMode, "aclrtSetStreamFailureMode"},
     103              :     {AclProfType::AclrtQueryDeviceStatus, "aclrtQueryDeviceStatus"},
     104              :     {AclProfType::AclrtReserveMemAddress, "aclrtReserveMemAddress"},
     105              :     {AclProfType::AclrtReleaseMemAddress, "aclrtReleaseMemAddress"},
     106              :     {AclProfType::AclrtMallocPhysical, "aclrtMallocPhysical"},
     107              :     {AclProfType::AclrtFreePhysical, "aclrtFreePhysical"},
     108              :     {AclProfType::AclrtMapMem, "aclrtMapMem"},
     109              :     {AclProfType::AclrtMemMapNoAccess, "aclrtMemMapNoAccess"},
     110              :     {AclProfType::AclrtUnmapMem, "aclrtUnmapMem"},
     111              :     {AclProfType::AclrtLaunchKernel, "aclrtLaunchKernel"},
     112              :     {AclProfType::AclrtMemGetAccess, "aclrtMemGetAccess"},
     113              :     {AclProfType::AclrtMemExportToShareableHandle, "aclrtMemExportToShareableHandle"},
     114              :     {AclProfType::AclrtMemExportToShareableHandleV2, "aclrtMemExportToShareableHandleV2"},
     115              :     {AclProfType::AclrtMemImportFromShareableHandle, "aclrtMemImportFromShareableHandle"},
     116              :     {AclProfType::AclrtMemImportFromShareableHandleV2, "aclrtMemImportFromShareableHandleV2"},
     117              :     {AclProfType::AclrtMemGetAllocationGranularity, "aclrtMemGetAllocationGranularity"},
     118              :     {AclProfType::AclrtMemSetPidToShareableHandle, "aclrtMemSetPidToShareableHandle"},
     119              :     {AclProfType::AclrtMemSetPidToShareableHandleV2, "aclrtMemSetPidToShareableHandleV2"},
     120              :     {AclProfType::AclrtDeviceGetBareTgid, "aclrtDeviceGetBareTgid"},
     121              :     {AclProfType::AclrtGetMemUceInfo, "aclrtGetMemUceInfo"},
     122              :     {AclProfType::AclrtDeviceTaskAbort, "aclrtDeviceTaskAbort"},
     123              :     {AclProfType::AclrtMemUceRepair, "aclrtMemUceRepair"},
     124              :     {AclProfType::AclrtCmoAsync, "aclrtCmoAsync"},
     125              :     {AclProfType::AclrtStreamAbort, "aclrtStreamAbort"},
     126              :     {AclProfType::AclrtMemcpyAsyncWithDesc, "aclrtMemcpyAsyncWithDesc"},
     127              :     {AclProfType::AclrtBinaryLoadFromFile, "aclrtBinaryLoadFromFile"},
     128              :     {AclProfType::AclrtBinaryGetDevAddress, "aclrtBinaryGetDevAddress"},
     129              :     {AclProfType::AclrtLaunchKernelWithConfig, "aclrtLaunchKernelWithConfig"},
     130              :     {AclProfType::AclrtKernelArgsAppend, "aclrtKernelArgsAppend"},
     131              :     {AclProfType::AclrtKernelArgsAppendPlaceHolder, "aclrtKernelArgsAppendPlaceHolder"},
     132              :     {AclProfType::AclrtKernelArgsParaUpdate, "aclrtKernelArgsParaUpdate"},
     133              :     {AclProfType::AclrtKernelArgsGetMemSize, "aclrtKernelArgsGetMemSize"},
     134              :     {AclProfType::AclrtKernelArgsGetHandleMemSize, "aclrtKernelArgsGetHandleMemSize"},
     135              :     {AclProfType::AclrtKernelArgsGetPlaceHolderBuffer, "aclrtKernelArgsGetPlaceHolderBuffer"},
     136              :     {AclProfType::AclrtMallocWithCfg, "aclrtMallocWithCfg"},
     137              :     {AclProfType::AclrtMallocForTaskScheduler, "aclrtMallocForTaskScheduler"},
     138              :     {AclProfType::AclrtMallocHostWithCfg, "aclrtMallocHostWithCfg"},
     139              :     {AclProfType::AclrtGetThreadLastTaskId, "aclrtGetThreadLastTaskId"},
     140              :     {AclProfType::AclrtStreamGetId, "aclrtStreamGetId"},
     141              :     {AclProfType::AclrtPointerGetAttributes, "aclrtPointerGetAttributes"},
     142              :     {AclProfType::AclrtHostRegister, "aclrtHostRegister"},
     143              :     {AclProfType::AclrtHostRegisterV2, "aclrtHostRegisterV2"},
     144              :     {AclProfType::AclrtHostGetDevicePointer, "aclrtHostGetDevicePointer"},
     145              :     {AclProfType::AclrtHostUnregister, "aclrtHostUnregister"},
     146              :     {AclProfType::AclrtValueWrite, "aclrtValueWrite"},
     147              :     {AclProfType::AclrtValueWait, "aclrtValueWait"},
     148              :     {AclProfType::AclrtGetStreamAvailableNum, "aclrtGetStreamAvailableNum"},
     149              :     {AclProfType::AclrtSetStreamAttribute, "aclrtSetStreamAttribute"},
     150              :     {AclProfType::AclrtGetStreamAttribute, "aclrtGetStreamAttribute"},
     151              :     {AclProfType::AclrtCreateNotify, "aclrtCreateNotify"},
     152              :     {AclProfType::AclrtDestroyNotify, "aclrtDestroyNotify"},
     153              :     {AclProfType::AclrtRecordNotify, "aclrtRecordNotify"},
     154              :     {AclProfType::AclrtWaitAndResetNotify, "aclrtWaitAndResetNotify"},
     155              :     {AclProfType::AclrtGetNotifyId, "aclrtGetNotifyId"},
     156              :     {AclProfType::AclrtGetEventId, "aclrtGetEventId"},
     157              :     {AclProfType::AclrtGetEventAvailNum, "aclrtGetEventAvailNum"},
     158              :     {AclProfType::AclrtGetDeviceInfo, "aclrtGetDeviceInfo"},
     159              :     {AclProfType::AclrtDeviceGetUuid, "aclrtDeviceGetUuid"},
     160              :     {AclProfType::AclrtDeviceSetLimit, "aclrtDeviceSetLimit"},
     161              :     {AclProfType::AclrtDeviceGetLimit, "aclrtDeviceGetLimit"},
     162              :     {AclProfType::AclrtDeviceGetStreamPriorityRange, "aclrtDeviceGetStreamPriorityRange"},
     163              :     {AclProfType::AclrtGetDeviceCapability, "aclrtGetDeviceCapability"},
     164              :     {AclProfType::AclrtCtxGetCurrentDefaultStream, "aclrtCtxGetCurrentDefaultStream"},
     165              :     {AclProfType::AclmdlRIBuildBegin, "aclmdlRIBuildBegin"},
     166              :     {AclProfType::AclmdlRIBindStream, "aclmdlRIBindStream"},
     167              :     {AclProfType::AclmdlRIEndTask, "aclmdlRIEndTask"},
     168              :     {AclProfType::AclmdlRIBuildEnd, "aclmdlRIBuildEnd"},
     169              :     {AclProfType::AclmdlRIUnbindStream, "aclmdlRIUnbindStream"},
     170              :     {AclProfType::AclmdlRIExecute, "aclmdlRIExecute"},
     171              :     {AclProfType::AclrtReduceAsync, "aclrtReduceAsync"},
     172              :     {AclProfType::AclrtGetDeviceResLimit, "aclrtGetDeviceResLimit"},
     173              :     {AclProfType::AclrtSetDeviceResLimit, "aclrtSetDeviceResLimit"},
     174              :     {AclProfType::AclrtResetDeviceResLimit, "aclrtResetDeviceResLimit"},
     175              :     {AclProfType::AclrtCreateLabel, "aclrtCreateLabel"},
     176              :     {AclProfType::AclrtSetLabel, "aclrtSetLabel"},
     177              :     {AclProfType::AclrtDestroyLabel, "aclrtDestroyLabel"},
     178              :     {AclProfType::AclrtCreateLabelList, "aclrtCreateLabelList"},
     179              :     {AclProfType::AclrtDestroyLabelList, "aclrtDestroyLabelList"},
     180              :     {AclProfType::AclrtSwitchLabelByIndex, "aclrtSwitchLabelByIndex"},
     181              :     {AclProfType::AclrtActiveStream, "aclrtActiveStream"},
     182              :     {AclProfType::AclrtSwitchStream, "aclrtSwitchStream"},
     183              :     {AclProfType::AclrtGetFunctionName, "aclrtGetFunctionName"},
     184              :     {AclProfType::AclmdlRISetName, "aclmdlRISetName"},
     185              :     {AclProfType::AclmdlRIGetName, "aclmdlRIGetName"},
     186              :     {AclProfType::AclrtGetBufFromChain, "aclrtGetBufFromChain"},
     187              :     {AclProfType::AclrtGetBufChainNum, "aclrtGetBufChainNum"},
     188              :     {AclProfType::AclrtAppendBufChain, "aclrtAppendBufChain"},
     189              :     {AclProfType::AclrtCopyBufRef, "aclrtCopyBufRef"},
     190              :     {AclProfType::AclrtGetBufUserData, "aclrtGetBufUserData"},
     191              :     {AclProfType::AclrtSetBufUserData, "aclrtSetBufUserData"},
     192              :     {AclProfType::AclrtGetBufData, "aclrtGetBufData"},
     193              :     {AclProfType::AclrtGetBufDataLen, "aclrtGetBufDataLen"},
     194              :     {AclProfType::AclrtSetBufDataLen, "aclrtSetBufDataLen"},
     195              :     {AclProfType::AclrtFreeBuf, "aclrtFreeBuf"},
     196              :     {AclProfType::AclrtAllocBuf, "aclrtAllocBuf"},
     197              :     {AclProfType::AclrtBinaryLoadFromData, "aclrtBinaryLoadFromData"},
     198              :     {AclProfType::AclrtRegisterCpuFunc, "aclrtRegisterCpuFunc"},
     199              :     {AclProfType::AclrtCmoAsyncWithBarrier, "aclrtCmoAsyncWithBarrier"},
     200              :     {AclProfType::AclrtCmoWaitBarrier, "aclrtCmoWaitBarrier"},
     201              :     {AclProfType::AclrtGetDevicesTopo, "aclrtGetDevicesTopo"},
     202              :     {AclProfType::AclrtMemcpyBatch, "aclrtMemcpyBatch"},
     203              :     {AclProfType::AclrtMemcpyBatchV2, "aclrtMemcpyBatchV2"},
     204              :     {AclProfType::AclrtMemcpyBatchAsync, "aclrtMemcpyBatchAsync"},
     205              :     {AclProfType::AclrtMemcpyBatchAsyncV2, "aclrtMemcpyBatchAsyncV2"},
     206              :     {AclProfType::AclrtIpcMemGetExportKey, "aclrtIpcMemGetExportKey"},
     207              :     {AclProfType::AclrtIpcMemClose, "aclrtIpcMemClose"},
     208              :     {AclProfType::AclrtIpcMemImportByKey, "aclrtIpcMemImportByKey"},
     209              :     {AclProfType::AclrtIpcMemSetImportPid, "aclrtIpcMemSetImportPid"},
     210              :     {AclProfType::AclrtNotifyBatchReset, "aclrtNotifyBatchReset"},
     211              :     {AclProfType::AclrtNotifyGetExportKey, "aclrtNotifyGetExportKey"},
     212              :     {AclProfType::AclrtNotifyImportByKey, "aclrtNotifyImportByKey"},
     213              :     {AclProfType::AclrtNotifySetImportPid, "aclrtNotifySetImportPid"},
     214              :     {AclProfType::AclrtGetStreamResLimit, "aclrtGetStreamResLimit"},
     215              :     {AclProfType::AclrtSetStreamResLimit, "aclrtSetStreamResLimit"},
     216              :     {AclProfType::AclrtResetStreamResLimit, "aclrtResetStreamResLimit"},
     217              :     {AclProfType::AclrtUseStreamResInCurrentThread, "aclrtUseStreamResInCurrentThread"},
     218              :     {AclProfType::AclrtUnuseStreamResInCurrentThread, "aclrtUnuseStreamResInCurrentThread"},
     219              :     {AclProfType::AclrtGetResInCurrentThread, "aclrtGetResInCurrentThread"},
     220              :     {AclProfType::AclrtCheckMemType, "aclrtCheckMemType"},
     221              :     {AclProfType::AclrtGetLogicDevIdByUserDevId, "aclrtGetLogicDevIdByUserDevId"},
     222              :     {AclProfType::AclrtGetUserDevIdByLogicDevId, "aclrtGetUserDevIdByLogicDevId"},
     223              :     {AclProfType::AclrtGetLogicDevIdByPhyDevId, "aclrtGetLogicDevIdByPhyDevId"},
     224              :     {AclProfType::AclrtGetPhyDevIdByLogicDevId, "aclrtGetPhyDevIdByLogicDevId"},
     225              :     {AclProfType::AclrtGetUserDevIdByPhyDevId, "aclrtGetUserDevIdByPhyDevId"},
     226              :     {AclProfType::AclrtGetPhyDevIdByUserDevId, "aclrtGetPhyDevIdByUserDevId"},
     227              :     {AclProfType::AclrtProfTrace, "aclrtProfTrace"},
     228              :     {AclProfType::AclrtLaunchKernelV2, "aclrtLaunchKernelV2"},
     229              :     {AclProfType::AclrtLaunchKernelWithHostArgs, "aclrtLaunchKernelWithHostArgs"},
     230              :     {AclProfType::AclrtLaunchKernelWithArgsArray, "aclrtLaunchKernelWithArgsArray"},
     231              :     {AclProfType::AclrtLaunchSIMTKernelWithArgsArray, "aclrtLaunchSIMTKernelWithArgsArray"},
     232              :     {AclProfType::AclrtCtxGetFloatOverflowAddr, "aclrtCtxGetFloatOverflowAddr"},
     233              :     {AclProfType::AclrtLaunchSIMTKernelWithHostArgs, "aclrtLaunchSIMTKernelWithHostArgs"},
     234              :     {AclProfType::AclrtGetFloatOverflowStatus, "aclrtGetFloatOverflowStatus"},
     235              :     {AclProfType::AclrtResetFloatOverflowStatus, "aclrtResetFloatOverflowStatus"},
     236              :     {AclProfType::AclrtNpuGetFloatOverFlowStatus, "aclrtNpuGetFloatOverFlowStatus"},
     237              :     {AclProfType::AclrtNpuClearFloatOverFlowStatus, "aclrtNpuClearFloatOverFlowStatus"},
     238              :     {AclProfType::AclrtLaunchHostFunc, "aclrtLaunchHostFunc"},
     239              :     {AclProfType::AclrtGetHardwareSyncAddr, "aclrtGetHardwareSyncAddr"},
     240              :     {AclProfType::AclrtRandomNumAsync, "aclrtRandomNumAsync"},
     241              :     {AclProfType::AclrtRegStreamStateCallback, "aclrtRegStreamStateCallback"},
     242              :     {AclProfType::AclrtRegDeviceStateCallback, "aclrtRegDeviceStateCallback"},
     243              :     {AclProfType::AclrtSetDeviceTaskAbortCallback, "aclrtSetDeviceTaskAbortCallback"},
     244              :     {AclProfType::AclrtGetOpExecuteTimeout, "aclrtGetOpExecuteTimeout"},
     245              :     {AclProfType::AclrtDevicePeerAccessStatus, "aclrtDevicePeerAccessStatus"},
     246              :     {AclProfType::AclrtStreamStop, "aclrtStreamStop"},
     247              :     {AclProfType::AclrtTaskUpdateAsync, "aclrtTaskUpdateAsync"},
     248              :     {AclProfType::AclrtCntNotifyCreate, "aclrtCntNotifyCreate"},
     249              :     {AclProfType::AclrtCntNotifyDestroy, "aclrtCntNotifyDestroy"},
     250              :     {AclProfType::AclrtIpcMemSetAttr, "aclrtIpcMemSetAttr"},
     251              :     {AclProfType::AclrtIpcMemImportPidInterServer, "aclrtIpcMemIpmportPidInterServer"},
     252              :     {AclProfType::AclrtNotifySetImportPidInterServer, "aclrtNotifySetImportPidInterServer"},
     253              :     {AclProfType::AclrtMemcpyAsyncWithOffset, "aclrtMemcpyAsyncWithOffset"},
     254              :     {AclProfType::AclrtCheckArchCompatibility, "aclrtCheckArchCompatibility"},
     255              :     {AclProfType::AclrtCmoGetDescSize, "aclrtCmoGetDescSize"},
     256              :     {AclProfType::AclrtCmoSetDesc, "aclrtCmoSetDesc"},
     257              :     {AclProfType::AclrtCmoAsyncWithDesc, "aclrtCmoAsyncWithDesc"},
     258              :     {AclProfType::AclmdlRIAbort, "aclmdlRIAbort"},
     259              :     {AclProfType::AclrtCntNotifyRecord, "aclrtCntNotifyRecord"},
     260              :     {AclProfType::AclrtCntNotifyWaitWithTimeout, "aclrtCntNotifyWaitWithTimeout"},
     261              :     {AclProfType::AclrtCntNotifyReset, "aclrtCntNotifyReset"},
     262              :     {AclProfType::AclrtCntNotifyGetId, "aclrtCntNotifyGetId"},
     263              :     {AclProfType::AclrtPersistentTaskClean, "aclrtPersistentTaskClean"},
     264              :     {AclProfType::AclrtGetErrorVerbose, "aclrtGetErrorVerbose"},
     265              :     {AclProfType::AclrtRepairError, "aclrtRepairError"},
     266              :     {AclProfType::AclrtMemSetAccess, "aclrtMemSetAccess"},
     267              :     {AclProfType::AclrtSetOpExecuteTimeOutV2, "aclrtSetOpExecuteTimeOutV2"},
     268              :     {AclProfType::AclrtGetOpTimeOutInterval, "aclrtGetOpTimeOutInterval"},
     269              :     {AclProfType::AclrtSnapShotProcessLock, "aclrtSnapShotProcessLock"},
     270              :     {AclProfType::AclrtSnapShotProcessUnlock, "aclrtSnapShotProcessUnlock"},
     271              :     {AclProfType::AclrtSnapShotProcessBackup, "aclrtSnapShotProcessBackup"},
     272              :     {AclProfType::AclrtSnapShotProcessRestore, "aclrtSnapShotProcessRestore"},
     273              :     {AclProfType::AclrtFreeWithDevSync, "aclrtFreeWithDevSync"},
     274              :     {AclProfType::AclrtFreeHostWithDevSync, "aclrtFreeHostWithDevSync"},
     275              :     {AclProfType::AclrtCacheLastTaskOpInfo, "aclrtCacheLastTaskOpInfo"},
     276              :     {AclProfType::AclrtCacheLastTaskExtendInfo, "aclrtCacheLastTaskExtendInfo"},
     277              :     {AclProfType::AclrtGetFunctionAttribute, "aclrtGetFunctionAttribute"},
     278              :     {AclProfType::AclrtFunctionGetParamCount, "aclrtFunctionGetParamCount"},
     279              :     {AclProfType::AclrtFunctionGetParamInfo, "aclrtFunctionGetParamInfo"},
     280              :     {AclProfType::AclrtIpcGetEventHandle, "aclrtIpcGetEventHandle"},
     281              :     {AclProfType::AclrtIpcOpenEventHandle, "aclrtIpcOpenEventHandle"},
     282              :     {AclProfType::AclrtMemRetainAllocationHandle, "aclrtMemRetainAllocationHandle"},
     283              :     {AclProfType::AclrtMemGetAllocationPropertiesFromHandle, "aclrtMemGetAllocationPropertiesFromHandle"},
     284              :     {AclProfType::AclrtHostMemMapCapabilities, "aclrtHostMemMapCapabilities"},
     285              :     {AclProfType::AclrtGetMemUsageInfo, "aclrtGetMemUsageInfo"},
     286              :     {AclProfType::AclrtReserveMemAddressNoUCMemory, "aclrtReserveMemAddressNoUCMemory"},
     287              :     {AclProfType::AclrtMemGetAddressRange, "aclrtMemGetAddressRange"},
     288              :     {AclProfType::aclrtMemP2PMap, "aclrtMemP2PMap"},
     289              :     {AclProfType::AclrtMemAllocManaged, "aclrtMemAllocManaged"},
     290              :     {AclProfType::AclrtMemPoolCreate, "aclrtMemPoolCreate"},
     291              :     {AclProfType::AclrtMemPoolDestroy, "aclrtMemPoolDestroy"},
     292              :     {AclProfType::AclrtMemPoolSetAttr, "aclrtMemPoolSetAttr"},
     293              :     {AclProfType::AclrtMemPoolGetAttr, "aclrtMemPoolGetAttr"},
     294              :     {AclProfType::AclrtMemPoolMallocAsync, "aclrtMemPoolMallocAsync"},
     295              :     {AclProfType::AclrtMemPoolFreeAsync, "aclrtMemPoolFreeAsync"},
     296              :     {AclProfType::AclrtMemPoolTrimTo, "aclrtMemPoolTrimTo"},
     297              :     {AclProfType::AclmdlRITaskGetSeqId, "aclmdlRITaskGetSeqId"},
     298              :     {AclProfType::AclmdlRIGetStreams, "aclmdlRIGetStreams"},
     299              :     {AclProfType::AclmdlRIGetTasksByStream, "aclmdlRIGetTasksByStream"},
     300              :     {AclProfType::AclmdlRITaskGetType, "aclmdlRITaskGetType"},
     301              :     {AclProfType::AclmdlRIDestroyRegisterCallback, "aclmdlRIDestroyRegisterCallback"},
     302              :     {AclProfType::AclmdlRIDestroyUnregisterCallback, "aclmdlRIDestroyUnregisterCallback"},
     303              :     {AclProfType::AclmdlRITaskGetParams, "aclmdlRITaskGetParams"},
     304              :     {AclProfType::AclmdlRITaskSetParams, "aclmdlRITaskSetParams"},
     305              :     {AclProfType::aclmdlRIKernelTaskGetAttribute, "aclmdlRIKernelTaskGetAttribute"},
     306              :     {AclProfType::AclmdlRIUpdate, "aclmdlRIUpdate"},
     307              :     {AclProfType::AclmdlRITaskDisable, "aclmdlRITaskDisable"},
     308              :     {AclProfType::AclrtMemManagedAdvise, "aclrtMemManagedAdvise"},
     309              :     {AclProfType::AclrtMemManagedGetAttr, "aclrtMemManagedGetAttr"},
     310              :     {AclProfType::AclrtMemManagedGetAttrs, "aclrtMemManagedGetAttrs"},
     311              :     {AclProfType::AclrtMemManagedPrefetchAsync, "aclrtMemManagedPrefetchAsync"},
     312              :     {AclProfType::AclrtMemManagedPrefetchBatchAsync, "aclrtMemManagedPrefetchBatchAsync"},
     313              :     {AclProfType::AclrtDeviceGetHostAtomicCapabilities, "aclrtDeviceGetHostAtomicCapabilities"},
     314              :     {AclProfType::AclrtDeviceGetP2PAtomicCapabilities, "aclrtDeviceGetP2PAtomicCapabilities"},
     315              :     {AclProfType::AclrtMemMapSelectedLink, "aclrtMemMapSelectedLink"},
     316              :     {AclProfType::AclmdlRIGetId, "aclmdlRIGetId"},
     317              :     {AclProfType::AclrtMemsetD32, "aclrtMemsetD32"},
     318              :     {AclProfType::AclrtMemsetD32Async, "aclrtMemsetD32Async"},
     319              :     {AclProfType::AclrtGetFuncBySymbol, "aclrtGetFuncBySymbol"},
     320              :     {AclProfType::AclrtGetSymbolAddress, "aclrtGetSymbolAddress"},
     321              :     {AclProfType::AclrtGetSymbolSize, "aclrtGetSymbolSize"},
     322              :     {AclProfType::AclrtMemcpyFromSymbol, "aclrtMemcpyFromSymbol"},
     323              :     {AclProfType::AclrtMemcpyFromSymbolAsync, "aclrtMemcpyFromSymbolAsync"},
     324              :     {AclProfType::AclrtMemcpyToSymbol, "aclrtMemcpyToSymbol"},
     325              :     {AclProfType::AclrtMemcpyToSymbolAsync, "aclrtMemcpyToSymbolAsync"},
     326              :     {AclProfType::AclmdlRICondHandleCreate, "aclmdlRICondHandleCreate"},
     327              :     {AclProfType::AclmdlRICondHandleGetCondPtr, "aclmdlRICondHandleGetCondPtr"},
     328              :     {AclProfType::AclmdlRIAddCondTask, "aclmdlRIAddCondTask"},
     329              :     {AclProfType::AclmdlRICaptureToModelRIBegin, "aclmdlRICaptureToModelRIBegin"},
     330              : };
     331              : 
     332          629 : aclError RegisterType(const uint32_t index)
     333              : {
     334          629 :     const AclProfType type = static_cast<AclProfType>(index);
     335          629 :     const auto iter = PROF_TYPE_TO_NAMES.find(type);
     336          629 :     if (iter != PROF_TYPE_TO_NAMES.cend()) {
     337          629 :         const auto ret = MsprofRegTypeInfo(MSPROF_REPORT_ACL_LEVEL, index, iter->second.c_str());
     338          629 :         if (ret != MSPROF_ERROR_NONE) {
     339            5 :             ACL_LOG_CALL_ERROR("Registered api type [%u] failed = %d", index, ret);
     340            5 :             return ACL_ERROR_PROFILING_FAILURE;
     341              :         }
     342              :     }
     343          624 :     return ACL_SUCCESS;
     344              : }
     345           26 : AclProfilingManager& AclProfilingManager::GetInstance()
     346              : {
     347           26 :     static AclProfilingManager profilingManager;
     348           26 :     return profilingManager;
     349              : }
     350              : 
     351            6 : aclError AclProfilingManager::Init()
     352              : {
     353            6 :     const std::lock_guard<std::mutex> lk(mutex_);
     354            6 :     const aclError reg_ret = RegisterProfilingType();
     355            6 :     if (reg_ret != 0) {
     356            5 :         ACL_LOG_INNER_ERROR("[Init][ProfEngine]init acl profiling reg failed, errorCode = %d", reg_ret);
     357            5 :         return reg_ret;
     358              :     }
     359            1 :     isProfiling_ = true;
     360            1 :     AclProfilingReporter::profRun = true;
     361            1 :     return ACL_SUCCESS;
     362            6 : }
     363              : 
     364            1 : aclError AclProfilingManager::UnInit()
     365              : {
     366            1 :     const std::lock_guard<std::mutex> lk(mutex_);
     367            1 :     isProfiling_ = false;
     368            1 :     AclProfilingReporter::profRun = false;
     369            1 :     return ACL_SUCCESS;
     370            1 : }
     371              : 
     372            0 : bool AclProfilingManager::IsDeviceListEmpty() const { return deviceList_.empty(); }
     373              : 
     374            2 : aclError AclProfilingManager::AddDeviceList(const uint32_t* const deviceIdList, const uint32_t deviceNums)
     375              : {
     376            2 :     if (deviceNums == 0U) {
     377            1 :         return ACL_SUCCESS;
     378              :     }
     379            1 :     ACL_REQUIRES_NOT_NULL(deviceIdList);
     380            4 :     for (size_t devId = 0U; devId < deviceNums; devId++) {
     381            3 :         if (deviceList_.count(*(deviceIdList + devId)) == 0U) {
     382            3 :             (void)deviceList_.insert(*(deviceIdList + devId));
     383            3 :             ACL_LOG_INFO("device id %u is successfully added in acl profiling", *(deviceIdList + devId));
     384              :         }
     385              :     }
     386            1 :     return ACL_SUCCESS;
     387              : }
     388              : 
     389            2 : aclError AclProfilingManager::RemoveDeviceList(const uint32_t* const deviceIdList, const uint32_t deviceNums)
     390              : {
     391            2 :     if (deviceNums == 0U) {
     392            1 :         return ACL_SUCCESS;
     393              :     }
     394            1 :     ACL_REQUIRES_NOT_NULL(deviceIdList);
     395            4 :     for (size_t devId = 0U; devId < deviceNums; devId++) {
     396            3 :         const auto iter = deviceList_.find(*(deviceIdList + devId));
     397            3 :         if (iter != deviceList_.end()) {
     398            3 :             (void)deviceList_.erase(iter);
     399              :         }
     400              :     }
     401            1 :     return ACL_SUCCESS;
     402              : }
     403              : 
     404            7 : aclError AclProfilingManager::RegisterProfilingType() const
     405              : {
     406          631 :     for (uint32_t i = static_cast<uint32_t>(AclProfType::AclRtProfTypeStart) + 1U;
     407          631 :          i < static_cast<uint32_t>(AclProfType::AclRtProfTypeEnd); ++i) {
     408          629 :         const auto ret = RegisterType(i);
     409          629 :         if (ret != ACL_SUCCESS) {
     410            5 :             return ret;
     411              :         }
     412              :     }
     413            2 :     return ACL_SUCCESS;
     414              : }
     415              : } // namespace acl
        

Generated by: LCOV version 2.0-1