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 : #ifndef PROFILING_COMMON_H
11 : #define PROFILING_COMMON_H
12 : #include <map>
13 : #include <string>
14 :
15 : #include "task_param.h"
16 : #include "enum_factory.h"
17 :
18 : namespace Hccl {
19 :
20 : MAKE_ENUM(HcclWorkflowMode, HCCL_WORKFLOW_MODE_OPS_KERNEL_INFO_LIB = 0, HCCL_WORKFLOW_MODE_OP_BASE = 1,
21 : HCCL_WORKFLOW_MODE_RESERVED)
22 :
23 : MAKE_ENUM(SimpleTaskType, SDMA = 0, RDMA, LOCAL, UB, ROCE)
24 :
25 : MAKE_ENUM(TaskRole, DST = 0, SRC)
26 :
27 : const std::map<TaskParamType, std::string> PROF_TASK_OP_NAME_V2 = {
28 : {TaskParamType::TASK_SDMA, "Memcpy"},
29 : {TaskParamType::TASK_RDMA, "RDMASend"},
30 : {TaskParamType::TASK_REDUCE_INLINE, "Reduce_Inline"},
31 : {TaskParamType::TASK_REDUCE_TBE, "Reduce_TBE"},
32 : {TaskParamType::TASK_NOTIFY_RECORD, "Notify_Record"},
33 : {TaskParamType::TASK_NOTIFY_WAIT, "Notify_Wait"},
34 : {TaskParamType::TASK_SEND_NOTIFY, "Send_Notify"},
35 : {TaskParamType::TASK_SEND_PAYLOAD, "Send_Payload"},
36 : {TaskParamType::TASK_WRITE_WITH_NOTIFY, "Write_With_Notify"},
37 : {TaskParamType::TASK_UB_INLINE_WRITE, "Ub_Inline_Write"},
38 : {TaskParamType::TASK_UB_REDUCE_INLINE, "Ub_Reduce_Inline"},
39 : {TaskParamType::TASK_UB, "Ub_Write_Or_Read"},
40 : {TaskParamType::TASK_WRITE_REDUCE_WITH_NOTIFY, "Reuce_With_Notify"},
41 : {TaskParamType::TASK_CCU, "Ccu"},
42 : {TaskParamType::TASK_AICPU_KERNEL, "AicpuKernel"},
43 : {TaskParamType::TASK_AICPU_REDUCE, "Aicpu_Reduce"},
44 : {TaskParamType::TASK_AIV, "AivKernel"},
45 : {TaskParamType::TASK_DPU_KERNEL, "DpuKernel"},
46 : {TaskParamType::TASK_DPU_THREAD_FENCE, "Dpu_ThreadFence"},
47 : {TaskParamType::TASK_DPU_CHANNEL_FENCE, "Dpu_ChannelFence"},
48 : {TaskParamType::TASK_DPU_INLINE_WRITE, "Dpu_Notify_Record"},
49 : {TaskParamType::TASK_DPU_NOTIFY_WAIT, "Dpu_Notify_Wait"},
50 : {TaskParamType::TASK_DPU_WRITE_WITH_NOTIFY, "Dpu_Write_With_Notify"},
51 : };
52 :
53 20 : inline std::string GetProfTaskOpNameV2(TaskParamType type)
54 : {
55 20 : CHK_PRT_RET(PROF_TASK_OP_NAME_V2.empty(), HCCL_ERROR("PROF_TASK_OP_NAME_V2 has not inited."), "invalid");
56 20 : auto it = PROF_TASK_OP_NAME_V2.find(type);
57 20 : if (it != PROF_TASK_OP_NAME_V2.end()) {
58 20 : return it->second;
59 : }
60 0 : return "unknown";
61 : }
62 :
63 : } // namespace Hccl
64 :
65 : #endif // PROFILING_COMMON_H
|