LCOV - code coverage report
Current view: top level - acl/aclrt_impl/toolchain - profiling_manager.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 96.4 % 55 53
Test Date: 2026-08-06 15:29:52 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              : 
      17              : namespace acl {
      18              :     const std::map<AclProfType, std::string> PROF_TYPE_TO_NAMES = {
      19              :         {AclProfType::AclmdlRIExecuteAsync,                     "aclmdlRIExecuteAsync"},
      20              :         {AclProfType::AclmdlRIDestroy,                          "aclmdlRIDestroy"},
      21              :         {AclProfType::AclmdlRICaptureBegin,                     "aclmdlRICaptureBegin"},
      22              :         {AclProfType::AclmdlRICaptureGetInfo,                   "aclmdlRICaptureGetInfo"},
      23              :         {AclProfType::AclmdlRICaptureEnd,                       "aclmdlRICaptureEnd"},
      24              :         {AclProfType::AclmdlRIDebugPrint,                       "aclmdlRIDebugPrint"},
      25              :         {AclProfType::AclmdlRIDebugJsonPrint,                   "aclmdlRIDebugJsonPrint"},
      26              :         {AclProfType::AclmdlRICaptureThreadExchangeMode,        "aclmdlRICaptureThreadExchangeMode"},
      27              :         {AclProfType::AclmdlRICaptureTaskGrpBegin,              "aclmdlRICaptureTaskGrpBegin"},
      28              :         {AclProfType::AclmdlRICaptureTaskGrpEnd,                "aclmdlRICaptureTaskGrpEnd"},
      29              :         {AclProfType::AclmdlRICaptureTaskUpdateBegin,           "aclmdlRICaptureTaskUpdateBegin"},
      30              :         {AclProfType::AclmdlRICaptureTaskUpdateEnd,             "aclmdlRICaptureTaskUpdateEnd"},
      31              :         {AclProfType::AclCreateDataBuffer,                      "aclCreateDataBuffer"},
      32              :         {AclProfType::AclrtLaunchCallback,                      "aclrtLaunchCallback"},
      33              :         {AclProfType::AclrtProcessReport,                       "aclrtProcessReport"},
      34              :         {AclProfType::AclrtCreateContext,                       "aclrtCreateContext"},
      35              :         {AclProfType::AclrtDestroyContext,                      "aclrtDestroyContext"},
      36              :         {AclProfType::AclrtSetCurrentContext,                   "aclrtSetCurrentContext"},
      37              :         {AclProfType::AclrtGetCurrentContext,                   "aclrtGetCurrentContext"},
      38              :         {AclProfType::AclrtSetDevice,                           "aclrtSetDevice"},
      39              :         {AclProfType::AclrtSetDeviceWithoutTsdVXX,              "aclrtSetDeviceWithoutTsdVXX"},
      40              :         {AclProfType::AclrtResetDevice,                         "aclrtResetDevice"},
      41              :         {AclProfType::AclrtResetDeviceForce,                    "aclrtResetDeviceForce"},
      42              :         {AclProfType::AclrtResetDeviceWithoutTsdVXX,            "aclrtResetDeviceWithoutTsdVXX"},
      43              :         {AclProfType::AclrtSynchronizeDevice,                   "aclrtSynchronizeDevice"},
      44              :         {AclProfType::AclrtSynchronizeDeviceWithTimeout,        "aclrtSynchronizeDeviceWithTimeout"},
      45              :         {AclProfType::AclrtSetTsDevice,                         "aclrtSetTsDevice"},
      46              :         {AclProfType::AclrtCreateEvent,                         "aclrtCreateEvent"},
      47              :         {AclProfType::AclrtCreateEventWithFlag,                 "aclrtCreateEventWithFlag"},
      48              :         {AclProfType::AclrtCreateEventExWithFlag,               "aclrtCreateEventExWithFlag"},
      49              :         {AclProfType::AclrtDestroyEvent,                        "aclrtDestroyEvent"},
      50              :         {AclProfType::AclrtRecordEvent,                         "aclrtRecordEvent"},
      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::AclrtStreamWaitEventWithTimeout,          "aclrtStreamWaitEventWithTimeout"},
      92              :         {AclProfType::AclrtAllocatorCreateDesc,                 "aclrtAllocatorCreateDesc"},
      93              :         {AclProfType::AclrtAllocatorDestroyDesc,                "aclrtAllocatorDestroyDesc"},
      94              :         {AclProfType::AclrtCtxGetSysParamOpt,                   "aclrtCtxGetSysParamOpt"},
      95              :         {AclProfType::AclrtCtxSetSysParamOpt,                   "aclrtCtxSetSysParamOpt"},
      96              :         {AclProfType::AclrtGetOverflowStatus,                   "aclrtGetOverflowStatus"},
      97              :         {AclProfType::AclrtResetOverflowStatus,                 "aclrtResetOverflowStatus"},
      98              :         {AclProfType::AclrtGetDeviceCount,                      "aclrtGetDeviceCount"},
      99              :         {AclProfType::AclrtGetDevice,                           "aclrtGetDevice"},
     100              :         {AclProfType::AclrtMalloc,                              "aclrtMalloc"},
     101              :         {AclProfType::AclrtSetStreamFailureMode,                "aclrtSetStreamFailureMode"},
     102              :         {AclProfType::AclrtQueryDeviceStatus,                   "aclrtQueryDeviceStatus"},
     103              :         {AclProfType::AclrtReserveMemAddress,                   "aclrtReserveMemAddress"},
     104              :         {AclProfType::AclrtReleaseMemAddress,                   "aclrtReleaseMemAddress"},
     105              :         {AclProfType::AclrtMallocPhysical,                      "aclrtMallocPhysical"},
     106              :         {AclProfType::AclrtFreePhysical,                        "aclrtFreePhysical"},
     107              :         {AclProfType::AclrtMapMem,                              "aclrtMapMem"},
     108              :         {AclProfType::AclrtUnmapMem,                            "aclrtUnmapMem"},
     109              :         {AclProfType::AclrtLaunchKernel,                        "aclrtLaunchKernel"},
     110              :         {AclProfType::AclrtMemGetAccess,                        "aclrtMemGetAccess"},
     111              :         {AclProfType::AclrtMemExportToShareableHandle,          "aclrtMemExportToShareableHandle"},
     112              :         {AclProfType::AclrtMemExportToShareableHandleV2,         "aclrtMemExportToShareableHandleV2"},
     113              :         {AclProfType::AclrtMemImportFromShareableHandle,        "aclrtMemImportFromShareableHandle"},
     114              :         {AclProfType::AclrtMemImportFromShareableHandleV2,      "aclrtMemImportFromShareableHandleV2"},
     115              :         {AclProfType::AclrtMemGetAllocationGranularity,         "aclrtMemGetAllocationGranularity"},
     116              :         {AclProfType::AclrtMemSetPidToShareableHandle,          "aclrtMemSetPidToShareableHandle"},
     117              :         {AclProfType::AclrtMemSetPidToShareableHandleV2,        "aclrtMemSetPidToShareableHandleV2"},
     118              :         {AclProfType::AclrtDeviceGetBareTgid,                   "aclrtDeviceGetBareTgid"},
     119              :         {AclProfType::AclrtGetMemUceInfo,                       "aclrtGetMemUceInfo"},
     120              :         {AclProfType::AclrtDeviceTaskAbort,                     "aclrtDeviceTaskAbort"},
     121              :         {AclProfType::AclrtMemUceRepair,                        "aclrtMemUceRepair"},
     122              :         {AclProfType::AclrtCmoAsync,                            "aclrtCmoAsync"},
     123              :         {AclProfType::AclrtStreamAbort,                         "aclrtStreamAbort"},
     124              :         {AclProfType::AclrtMemcpyAsyncWithDesc,                 "aclrtMemcpyAsyncWithDesc"},
     125              :         {AclProfType::AclrtBinaryLoadFromFile,                  "aclrtBinaryLoadFromFile"},
     126              :         {AclProfType::AclrtBinaryGetDevAddress,                 "aclrtBinaryGetDevAddress"},
     127              :         {AclProfType::AclrtLaunchKernelWithConfig,              "aclrtLaunchKernelWithConfig"},
     128              :         {AclProfType::AclrtKernelArgsAppend,                    "aclrtKernelArgsAppend"},
     129              :         {AclProfType::AclrtKernelArgsAppendPlaceHolder,         "aclrtKernelArgsAppendPlaceHolder"},
     130              :         {AclProfType::AclrtKernelArgsParaUpdate,                "aclrtKernelArgsParaUpdate"},
     131              :         {AclProfType::AclrtKernelArgsGetMemSize,                "aclrtKernelArgsGetMemSize"},
     132              :         {AclProfType::AclrtKernelArgsGetHandleMemSize,          "aclrtKernelArgsGetHandleMemSize"},
     133              :         {AclProfType::AclrtKernelArgsGetPlaceHolderBuffer,      "aclrtKernelArgsGetPlaceHolderBuffer"},
     134              :         {AclProfType::AclrtMallocWithCfg,                       "aclrtMallocWithCfg"},
     135              :         {AclProfType::AclrtMallocForTaskScheduler,              "aclrtMallocForTaskScheduler"},
     136              :         {AclProfType::AclrtMallocHostWithCfg,                   "aclrtMallocHostWithCfg"},
     137              :         {AclProfType::AclrtGetThreadLastTaskId,                 "aclrtGetThreadLastTaskId"},
     138              :         {AclProfType::AclrtStreamGetId,                         "aclrtStreamGetId"},
     139              :         {AclProfType::AclrtPointerGetAttributes,                "aclrtPointerGetAttributes"},
     140              :         {AclProfType::AclrtHostRegister,                        "aclrtHostRegister"},
     141              :         {AclProfType::AclrtHostRegisterV2,                      "aclrtHostRegisterV2"},
     142              :         {AclProfType::AclrtHostGetDevicePointer,                "aclrtHostGetDevicePointer"},
     143              :         {AclProfType::AclrtHostUnregister,                      "aclrtHostUnregister"},
     144              :         {AclProfType::AclrtValueWrite,                          "aclrtValueWrite"},
     145              :         {AclProfType::AclrtValueWait,                           "aclrtValueWait"},
     146              :         {AclProfType::AclrtGetStreamAvailableNum,               "aclrtGetStreamAvailableNum"},
     147              :         {AclProfType::AclrtSetStreamAttribute,                  "aclrtSetStreamAttribute"},
     148              :         {AclProfType::AclrtGetStreamAttribute,                  "aclrtGetStreamAttribute"},
     149              :         {AclProfType::AclrtCreateNotify,                        "aclrtCreateNotify"},
     150              :         {AclProfType::AclrtDestroyNotify,                       "aclrtDestroyNotify"},
     151              :         {AclProfType::AclrtRecordNotify,                        "aclrtRecordNotify"},
     152              :         {AclProfType::AclrtWaitAndResetNotify,                  "aclrtWaitAndResetNotify"},
     153              :         {AclProfType::AclrtGetNotifyId,                         "aclrtGetNotifyId"},
     154              :         {AclProfType::AclrtGetEventId,                          "aclrtGetEventId"},
     155              :         {AclProfType::AclrtGetEventAvailNum,                    "aclrtGetEventAvailNum"},
     156              :         {AclProfType::AclrtGetDeviceInfo,                       "aclrtGetDeviceInfo"},
     157              :         {AclProfType::AclrtDeviceGetUuid,                       "aclrtDeviceGetUuid"},
     158              :         {AclProfType::AclrtDeviceGetStreamPriorityRange,        "aclrtDeviceGetStreamPriorityRange"},
     159              :         {AclProfType::AclrtGetDeviceCapability,                 "aclrtGetDeviceCapability"},
     160              :         {AclProfType::AclrtCtxGetCurrentDefaultStream,          "aclrtCtxGetCurrentDefaultStream"},
     161              :         {AclProfType::AclmdlRIBuildBegin,                       "aclmdlRIBuildBegin"},
     162              :         {AclProfType::AclmdlRIBindStream,                       "aclmdlRIBindStream"},
     163              :         {AclProfType::AclmdlRIEndTask,                          "aclmdlRIEndTask"},
     164              :         {AclProfType::AclmdlRIBuildEnd,                         "aclmdlRIBuildEnd"},
     165              :         {AclProfType::AclmdlRIUnbindStream,                     "aclmdlRIUnbindStream"},
     166              :         {AclProfType::AclmdlRIExecute,                          "aclmdlRIExecute"},
     167              :         {AclProfType::AclrtReduceAsync,                         "aclrtReduceAsync"},
     168              :         {AclProfType::AclrtGetDeviceResLimit,                   "aclrtGetDeviceResLimit"},
     169              :         {AclProfType::AclrtSetDeviceResLimit,                   "aclrtSetDeviceResLimit"},
     170              :         {AclProfType::AclrtResetDeviceResLimit,                 "aclrtResetDeviceResLimit"},
     171              :         {AclProfType::AclrtCreateLabel,                         "aclrtCreateLabel"},
     172              :         {AclProfType::AclrtSetLabel,                            "aclrtSetLabel"},
     173              :         {AclProfType::AclrtDestroyLabel,                        "aclrtDestroyLabel"},
     174              :         {AclProfType::AclrtCreateLabelList,                     "aclrtCreateLabelList"},
     175              :         {AclProfType::AclrtDestroyLabelList,                    "aclrtDestroyLabelList"},
     176              :         {AclProfType::AclrtSwitchLabelByIndex,                  "aclrtSwitchLabelByIndex"},
     177              :         {AclProfType::AclrtActiveStream,                        "aclrtActiveStream"},
     178              :         {AclProfType::AclrtSwitchStream,                        "aclrtSwitchStream"},
     179              :         {AclProfType::AclrtGetFunctionName,                     "aclrtGetFunctionName"},
     180              :         {AclProfType::AclmdlRISetName,                          "aclmdlRISetName"},
     181              :         {AclProfType::AclmdlRIGetName,                          "aclmdlRIGetName"},
     182              :         {AclProfType::AclrtGetBufFromChain,                     "aclrtGetBufFromChain"},
     183              :         {AclProfType::AclrtGetBufChainNum,                      "aclrtGetBufChainNum"},
     184              :         {AclProfType::AclrtAppendBufChain,                      "aclrtAppendBufChain"},
     185              :         {AclProfType::AclrtCopyBufRef,                          "aclrtCopyBufRef"},
     186              :         {AclProfType::AclrtGetBufUserData,                      "aclrtGetBufUserData"},
     187              :         {AclProfType::AclrtSetBufUserData,                      "aclrtSetBufUserData"},
     188              :         {AclProfType::AclrtGetBufData,                          "aclrtGetBufData"},
     189              :         {AclProfType::AclrtGetBufDataLen,                       "aclrtGetBufDataLen"},
     190              :         {AclProfType::AclrtSetBufDataLen,                       "aclrtSetBufDataLen"},
     191              :         {AclProfType::AclrtFreeBuf,                             "aclrtFreeBuf"},
     192              :         {AclProfType::AclrtAllocBuf,                            "aclrtAllocBuf"},
     193              :         {AclProfType::AclrtBinaryLoadFromData,                  "aclrtBinaryLoadFromData"},
     194              :         {AclProfType::AclrtRegisterCpuFunc,                     "aclrtRegisterCpuFunc"},
     195              :         {AclProfType::AclrtCmoAsyncWithBarrier,                 "aclrtCmoAsyncWithBarrier"},
     196              :         {AclProfType::AclrtCmoWaitBarrier,                      "aclrtCmoWaitBarrier"},
     197              :         {AclProfType::AclrtGetDevicesTopo,                      "aclrtGetDevicesTopo"},
     198              :         {AclProfType::AclrtMemcpyBatch,                         "aclrtMemcpyBatch"},
     199              :         {AclProfType::AclrtMemcpyBatchV2,                       "aclrtMemcpyBatchV2"},
     200              :         {AclProfType::AclrtMemcpyBatchAsync,                    "aclrtMemcpyBatchAsync"},
     201              :         {AclProfType::AclrtMemcpyBatchAsyncV2,                  "aclrtMemcpyBatchAsyncV2"},
     202              :         {AclProfType::AclrtIpcMemGetExportKey,                  "aclrtIpcMemGetExportKey"},
     203              :         {AclProfType::AclrtIpcMemClose,                         "aclrtIpcMemClose"},
     204              :         {AclProfType::AclrtIpcMemImportByKey,                   "aclrtIpcMemImportByKey"},
     205              :         {AclProfType::AclrtIpcMemSetImportPid,                  "aclrtIpcMemSetImportPid"},
     206              :         {AclProfType::AclrtNotifyBatchReset,                    "aclrtNotifyBatchReset"},
     207              :         {AclProfType::AclrtNotifyGetExportKey,                  "aclrtNotifyGetExportKey"},
     208              :         {AclProfType::AclrtNotifyImportByKey,                   "aclrtNotifyImportByKey"},
     209              :         {AclProfType::AclrtNotifySetImportPid,                  "aclrtNotifySetImportPid"},
     210              :         {AclProfType::AclrtGetStreamResLimit,                   "aclrtGetStreamResLimit"},
     211              :         {AclProfType::AclrtSetStreamResLimit,                   "aclrtSetStreamResLimit"},
     212              :         {AclProfType::AclrtResetStreamResLimit,                 "aclrtResetStreamResLimit"},
     213              :         {AclProfType::AclrtUseStreamResInCurrentThread,         "aclrtUseStreamResInCurrentThread"},
     214              :         {AclProfType::AclrtUnuseStreamResInCurrentThread,       "aclrtUnuseStreamResInCurrentThread"},
     215              :         {AclProfType::AclrtGetResInCurrentThread,               "aclrtGetResInCurrentThread"},
     216              :         {AclProfType::AclrtCheckMemType,                        "aclrtCheckMemType"},
     217              :         {AclProfType::AclrtGetLogicDevIdByUserDevId,            "aclrtGetLogicDevIdByUserDevId"},
     218              :         {AclProfType::AclrtGetUserDevIdByLogicDevId,            "aclrtGetUserDevIdByLogicDevId"},
     219              :         {AclProfType::AclrtGetLogicDevIdByPhyDevId,             "aclrtGetLogicDevIdByPhyDevId"},
     220              :         {AclProfType::AclrtGetPhyDevIdByLogicDevId,             "aclrtGetPhyDevIdByLogicDevId"},
     221              :         {AclProfType::AclrtGetUserDevIdByPhyDevId,              "aclrtGetUserDevIdByPhyDevId"},
     222              :         {AclProfType::AclrtGetPhyDevIdByUserDevId,              "aclrtGetPhyDevIdByUserDevId"},
     223              :         {AclProfType::AclrtProfTrace,                           "aclrtProfTrace"},
     224              :         {AclProfType::AclrtLaunchKernelV2,                      "aclrtLaunchKernelV2"},
     225              :         {AclProfType::AclrtLaunchKernelWithHostArgs,            "aclrtLaunchKernelWithHostArgs"},
     226              :         {AclProfType::AclrtLaunchKernelWithArgsArray,            "aclrtLaunchKernelWithArgsArray"},
     227              :         {AclProfType::AclrtCtxGetFloatOverflowAddr,             "aclrtCtxGetFloatOverflowAddr"},
     228              :         {AclProfType::AclrtGetFloatOverflowStatus,              "aclrtGetFloatOverflowStatus"},
     229              :         {AclProfType::AclrtResetFloatOverflowStatus,            "aclrtResetFloatOverflowStatus"},
     230              :         {AclProfType::AclrtNpuGetFloatOverFlowStatus,           "aclrtNpuGetFloatOverFlowStatus"},
     231              :         {AclProfType::AclrtNpuClearFloatOverFlowStatus,         "aclrtNpuClearFloatOverFlowStatus"},
     232              :         {AclProfType::AclrtLaunchHostFunc,                      "aclrtLaunchHostFunc"},
     233              :         {AclProfType::AclrtGetHardwareSyncAddr,                 "aclrtGetHardwareSyncAddr"},
     234              :         {AclProfType::AclrtRandomNumAsync,                      "aclrtRandomNumAsync"},
     235              :         {AclProfType::AclrtRegStreamStateCallback,              "aclrtRegStreamStateCallback"},
     236              :         {AclProfType::AclrtRegDeviceStateCallback,              "aclrtRegDeviceStateCallback"},
     237              :         {AclProfType::AclrtSetDeviceTaskAbortCallback,          "aclrtSetDeviceTaskAbortCallback"},
     238              :         {AclProfType::AclrtGetOpExecuteTimeout,                 "aclrtGetOpExecuteTimeout"},
     239              :         {AclProfType::AclrtDevicePeerAccessStatus,              "aclrtDevicePeerAccessStatus"},
     240              :         {AclProfType::AclrtStreamStop,                          "aclrtStreamStop"},
     241              :         {AclProfType::AclrtTaskUpdateAsync,                     "aclrtTaskUpdateAsync"},
     242              :         {AclProfType::AclrtCntNotifyCreate,                     "aclrtCntNotifyCreate"},
     243              :         {AclProfType::AclrtCntNotifyDestroy,                    "aclrtCntNotifyDestroy"},
     244              :         {AclProfType::AclrtIpcMemSetAttr,                       "aclrtIpcMemSetAttr"},
     245              :         {AclProfType::AclrtIpcMemImportPidInterServer,          "aclrtIpcMemIpmportPidInterServer"},
     246              :         {AclProfType::AclrtNotifySetImportPidInterServer,       "aclrtNotifySetImportPidInterServer"},
     247              :         {AclProfType::AclrtMemcpyAsyncWithOffset,               "aclrtMemcpyAsyncWithOffset"},
     248              :         {AclProfType::AclrtCheckArchCompatibility,              "aclrtCheckArchCompatibility"},
     249              :         {AclProfType::AclrtCmoGetDescSize,                      "aclrtCmoGetDescSize"},
     250              :         {AclProfType::AclrtCmoSetDesc,                          "aclrtCmoSetDesc"},
     251              :         {AclProfType::AclrtCmoAsyncWithDesc,                    "aclrtCmoAsyncWithDesc"},
     252              :         {AclProfType::AclmdlRIAbort,                            "aclmdlRIAbort"},
     253              :         {AclProfType::AclrtCntNotifyRecord,                     "aclrtCntNotifyRecord"},
     254              :         {AclProfType::AclrtCntNotifyWaitWithTimeout,            "aclrtCntNotifyWaitWithTimeout"},
     255              :         {AclProfType::AclrtCntNotifyReset,                      "aclrtCntNotifyReset"},
     256              :         {AclProfType::AclrtCntNotifyGetId,                      "aclrtCntNotifyGetId"},
     257              :         {AclProfType::AclrtPersistentTaskClean,                 "aclrtPersistentTaskClean"},
     258              :         {AclProfType::AclrtGetErrorVerbose,                     "aclrtGetErrorVerbose"},
     259              :         {AclProfType::AclrtRepairError,                         "aclrtRepairError"},
     260              :         {AclProfType::AclrtMemSetAccess,                        "aclrtMemSetAccess"},
     261              :         {AclProfType::AclrtSetOpExecuteTimeOutV2,               "aclrtSetOpExecuteTimeOutV2"},
     262              :         {AclProfType::AclrtGetOpTimeOutInterval,                "aclrtGetOpTimeOutInterval"},
     263              :         {AclProfType::AclrtSnapShotProcessLock,                 "aclrtSnapShotProcessLock"},
     264              :         {AclProfType::AclrtSnapShotProcessUnlock,               "aclrtSnapShotProcessUnlock"},
     265              :         {AclProfType::AclrtSnapShotProcessBackup,               "aclrtSnapShotProcessBackup"},
     266              :         {AclProfType::AclrtSnapShotProcessRestore,              "aclrtSnapShotProcessRestore"},
     267              :         {AclProfType::AclrtFreeWithDevSync,                     "aclrtFreeWithDevSync"},
     268              :         {AclProfType::AclrtFreeHostWithDevSync,                 "aclrtFreeHostWithDevSync"},
     269              :         {AclProfType::AclrtCacheLastTaskOpInfo,                 "aclrtCacheLastTaskOpInfo"},
     270              :         {AclProfType::AclrtCacheLastTaskExtendInfo,             "aclrtCacheLastTaskExtendInfo"},
     271              :         {AclProfType::AclrtGetFunctionAttribute,                "aclrtGetFunctionAttribute"},
     272              :         {AclProfType::AclrtFunctionGetParamCount,               "aclrtFunctionGetParamCount"},
     273              :         {AclProfType::AclrtFunctionGetParamInfo,                "aclrtFunctionGetParamInfo"},
     274              :         {AclProfType::AclrtIpcGetEventHandle,                   "aclrtIpcGetEventHandle"},
     275              :         {AclProfType::AclrtIpcOpenEventHandle,                  "aclrtIpcOpenEventHandle"},
     276              :         {AclProfType::AclrtMemRetainAllocationHandle,           "aclrtMemRetainAllocationHandle"},
     277              :         {AclProfType::AclrtMemGetAllocationPropertiesFromHandle,"aclrtMemGetAllocationPropertiesFromHandle"},
     278              :         {AclProfType::AclrtHostMemMapCapabilities,              "aclrtHostMemMapCapabilities"},
     279              :         {AclProfType::AclrtGetMemUsageInfo,                     "aclrtGetMemUsageInfo"},
     280              :         {AclProfType::AclrtReserveMemAddressNoUCMemory,         "aclrtReserveMemAddressNoUCMemory"},
     281              :         {AclProfType::AclrtMemGetAddressRange,                  "aclrtMemGetAddressRange"},
     282              :         {AclProfType::aclrtMemP2PMap,                           "aclrtMemP2PMap"},
     283              :         {AclProfType::AclrtMemAllocManaged,                     "aclrtMemAllocManaged"},
     284              :         {AclProfType::AclrtMemPoolCreate,                       "aclrtMemPoolCreate"},
     285              :         {AclProfType::AclrtMemPoolDestroy,                      "aclrtMemPoolDestroy"},
     286              :         {AclProfType::AclrtMemPoolSetAttr,                      "aclrtMemPoolSetAttr"},
     287              :         {AclProfType::AclrtMemPoolGetAttr,                      "aclrtMemPoolGetAttr"},
     288              :         {AclProfType::AclrtMemPoolMallocAsync,                  "aclrtMemPoolMallocAsync"},
     289              :             {AclProfType::AclrtMemPoolFreeAsync,                    "aclrtMemPoolFreeAsync"},
     290              :         {AclProfType::AclrtMemPoolTrimTo,                       "aclrtMemPoolTrimTo"},
     291              :         {AclProfType::AclmdlRITaskGetSeqId,                     "aclmdlRITaskGetSeqId"},
     292              :         {AclProfType::AclmdlRIGetStreams,                       "aclmdlRIGetStreams"},
     293              :         {AclProfType::AclmdlRIGetTasksByStream,                 "aclmdlRIGetTasksByStream"},
     294              :         {AclProfType::AclmdlRITaskGetType,                      "aclmdlRITaskGetType"},
     295              :         {AclProfType::AclmdlRIDestroyRegisterCallback,          "aclmdlRIDestroyRegisterCallback"},
     296              :         {AclProfType::AclmdlRIDestroyUnregisterCallback,        "aclmdlRIDestroyUnregisterCallback"},
     297              :         {AclProfType::AclmdlRITaskGetParams,                    "aclmdlRITaskGetParams"},
     298              :         {AclProfType::AclmdlRITaskSetParams,                    "aclmdlRITaskSetParams"},
     299              :         {AclProfType::aclmdlRIKernelTaskGetAttribute,           "aclmdlRIKernelTaskGetAttribute"},
     300              :         {AclProfType::AclmdlRIUpdate,                           "aclmdlRIUpdate"},
     301              :         {AclProfType::AclmdlRITaskDisable,                      "aclmdlRITaskDisable"},
     302              :         {AclProfType::AclrtMemManagedAdvise,                    "aclrtMemManagedAdvise"},
     303              :         {AclProfType::AclrtMemManagedGetAttr,                   "aclrtMemManagedGetAttr"},
     304              :         {AclProfType::AclrtMemManagedGetAttrs,                  "aclrtMemManagedGetAttrs"},
     305              :         {AclProfType::AclrtMemManagedPrefetchAsync,             "aclrtMemManagedPrefetchAsync"},
     306              :         {AclProfType::AclrtMemManagedPrefetchBatchAsync,        "aclrtMemManagedPrefetchBatchAsync"},
     307              :         {AclProfType::AclrtDeviceGetHostAtomicCapabilities,     "aclrtDeviceGetHostAtomicCapabilities"},
     308              :         {AclProfType::AclrtDeviceGetP2PAtomicCapabilities,      "aclrtDeviceGetP2PAtomicCapabilities"},
     309              :         {AclProfType::AclrtMemMapSelectedLink,                  "aclrtMemMapSelectedLink"},
     310              :         {AclProfType::AclmdlRIGetId,                            "aclmdlRIGetId"},
     311              :         {AclProfType::AclrtMemsetD32,                           "aclrtMemsetD32"},
     312              :         {AclProfType::AclrtMemsetD32Async,                      "aclrtMemsetD32Async"},
     313              :         {AclProfType::AclrtGetFuncBySymbol,                     "aclrtGetFuncBySymbol"},
     314              :         {AclProfType::AclrtGetSymbolAddress,                    "aclrtGetSymbolAddress"},
     315              :         {AclProfType::AclrtGetSymbolSize,                       "aclrtGetSymbolSize"},
     316              :         {AclProfType::AclrtMemcpyFromSymbol,                    "aclrtMemcpyFromSymbol"},
     317              :         {AclProfType::AclrtMemcpyFromSymbolAsync,               "aclrtMemcpyFromSymbolAsync"},
     318              :         {AclProfType::AclrtMemcpyToSymbol,                      "aclrtMemcpyToSymbol"},
     319              :         {AclProfType::AclrtMemcpyToSymbolAsync,                 "aclrtMemcpyToSymbolAsync"},
     320              :         {AclProfType::AclmdlRICondHandleCreate,                 "aclmdlRICondHandleCreate"},
     321              :         {AclProfType::AclmdlRICondHandleGetCondPtr,             "aclmdlRICondHandleGetCondPtr"},
     322              :         {AclProfType::AclmdlRIAddCondTask,                      "aclmdlRIAddCondTask"},
     323              :         {AclProfType::AclmdlRICaptureToModelRIBegin,            "aclmdlRICaptureToModelRIBegin"},
     324              : };
     325              : 
     326          615 : aclError RegisterType(const uint32_t index) {
     327          615 :     const AclProfType type = static_cast<AclProfType>(index);
     328          615 :     const auto iter = PROF_TYPE_TO_NAMES.find(type);
     329          615 :     if (iter != PROF_TYPE_TO_NAMES.cend()) {
     330          615 :         const auto ret = MsprofRegTypeInfo(MSPROF_REPORT_ACL_LEVEL, index, iter->second.c_str());
     331          615 :         if (ret != MSPROF_ERROR_NONE) {
     332            5 :             ACL_LOG_CALL_ERROR("Registered api type [%u] failed = %d", index, ret);
     333            5 :             return ACL_ERROR_PROFILING_FAILURE;
     334              :         }
     335              :     }
     336          610 :     return ACL_SUCCESS;
     337              : }
     338           26 : AclProfilingManager &AclProfilingManager::GetInstance()
     339              : {
     340           26 :     static AclProfilingManager profilingManager;
     341           26 :     return profilingManager;
     342              : }
     343              : 
     344            6 : aclError AclProfilingManager::Init()
     345              : {
     346            6 :     const std::lock_guard<std::mutex> lk(mutex_);
     347            6 :     const aclError reg_ret = RegisterProfilingType();
     348            6 :     if (reg_ret != 0) {
     349            5 :         ACL_LOG_INNER_ERROR("[Init][ProfEngine]init acl profiling reg failed, errorCode = %d", reg_ret);
     350            5 :         return reg_ret;
     351              :     }
     352            1 :     isProfiling_ = true;
     353            1 :     AclProfilingReporter::profRun = true;
     354            1 :     return ACL_SUCCESS;
     355            6 : }
     356              : 
     357            1 : aclError AclProfilingManager::UnInit()
     358              : {
     359            1 :     const std::lock_guard<std::mutex> lk(mutex_);
     360            1 :     isProfiling_ = false;
     361            1 :     AclProfilingReporter::profRun = false;
     362            1 :     return ACL_SUCCESS;
     363            1 : }
     364              : 
     365            0 : bool AclProfilingManager::IsDeviceListEmpty() const
     366              : {
     367            0 :     return deviceList_.empty();
     368              : }
     369              : 
     370            2 : aclError AclProfilingManager::AddDeviceList(const uint32_t *const deviceIdList, const uint32_t deviceNums)
     371              : {
     372            2 :     if (deviceNums == 0U) {
     373            1 :         return ACL_SUCCESS;
     374              :     }
     375            1 :     ACL_REQUIRES_NOT_NULL(deviceIdList);
     376            4 :     for (size_t devId = 0U; devId < deviceNums; devId++) {
     377            3 :         if (deviceList_.count(*(deviceIdList + devId)) == 0U) {
     378            3 :             (void)deviceList_.insert(*(deviceIdList + devId));
     379            3 :             ACL_LOG_INFO("device id %u is successfully added in acl profiling", *(deviceIdList + devId));
     380              :         }
     381              :     }
     382            1 :     return ACL_SUCCESS;
     383              : }
     384              : 
     385            2 : aclError AclProfilingManager::RemoveDeviceList(const uint32_t *const deviceIdList, const uint32_t deviceNums)
     386              : {
     387            2 :     if (deviceNums == 0U) {
     388            1 :         return ACL_SUCCESS;
     389              :     }
     390            1 :     ACL_REQUIRES_NOT_NULL(deviceIdList);
     391            4 :     for (size_t devId = 0U; devId < deviceNums; devId++) {
     392            3 :         const auto iter = deviceList_.find(*(deviceIdList + devId));
     393            3 :         if (iter != deviceList_.end()) {
     394            3 :             (void)deviceList_.erase(iter);
     395              :         }
     396              :     }
     397            1 :     return ACL_SUCCESS;
     398              : }
     399              : 
     400            7 : aclError AclProfilingManager::RegisterProfilingType() const
     401              : {
     402          617 :     for (uint32_t i = static_cast<uint32_t>(AclProfType::AclRtProfTypeStart) + 1U;
     403          617 :          i < static_cast<uint32_t>(AclProfType::AclRtProfTypeEnd); ++i) {
     404          615 :         const auto ret = RegisterType(i);
     405          615 :         if (ret != ACL_SUCCESS) {
     406            5 :             return ret;
     407              :         }
     408              :     }
     409            2 :     return ACL_SUCCESS;
     410              : }
     411              : }  // namespace acl
        

Generated by: LCOV version 2.0-1