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 : #ifndef HCCLV2_OP_TYPE_H
12 : #define HCCLV2_OP_TYPE_H
13 :
14 : #include <algorithm>
15 : #include <map>
16 : #include <unordered_map>
17 : #include "../utils/enum_factory_legacy.h"
18 : #include "log.h"
19 :
20 : namespace Hccl {
21 :
22 1537330 : MAKE_ENUM(
23 : OpType, ALLREDUCE, BROADCAST, ALLGATHER, REDUCESCATTER, SEND, RECV, BARRIER, ALLTOALL, REDUCE, GATHER, SCATTER,
24 : ALLTOALLV, ALLTOALLVC, HALFALLTOALLV, BATCHSENDRECV, BATCHGET, BATCHPUT, ALLGATHERV, REDUCESCATTERV, DEBUGCASE,
25 : HCCLGROUPOP, OPTYPEINVALID)
26 :
27 2 : inline std::string OpTypeToString(OpType type) { return type.Describe(); }
28 :
29 : const std::map<std::string, OpType> HCOM_OP_TYPE_STR_MAP_V2{
30 : {"ALLREDUCE", OpType::ALLREDUCE},
31 : {"BROADCAST", OpType::BROADCAST},
32 : {"ALLGATHER", OpType::ALLGATHER},
33 : {"REDUCESCATTER", OpType::REDUCESCATTER},
34 : {"SEND", OpType::SEND},
35 : {"RECV", OpType::RECV},
36 : {"BARRIER", OpType::BARRIER},
37 : {"ALLTOALL", OpType::ALLTOALL},
38 : {"REDUCE", OpType::REDUCE},
39 : {"GATHER", OpType::GATHER},
40 : {"SCATTER", OpType::SCATTER},
41 : {"ALLTOALLV", OpType::ALLTOALLV},
42 : {"ALLTOALLVC", OpType::ALLTOALLVC},
43 : {"HALFALLTOALLV", OpType::HALFALLTOALLV},
44 : {"BATCHSENDRECV", OpType::BATCHSENDRECV},
45 : {"BATCHGET", OpType::BATCHGET},
46 : {"BATCHPUT", OpType::BATCHPUT},
47 : {"ALLGATHERV", OpType::ALLGATHERV},
48 : {"REDUCESCATTERV", OpType::REDUCESCATTERV},
49 : {"DEBUGCASE", OpType::DEBUGCASE}};
50 :
51 : const std::map<HcclCMDType, Hccl::OpType> OP_TYPE_MAP = {
52 : {HcclCMDType::HCCL_CMD_ALLREDUCE, Hccl::OpType::ALLREDUCE},
53 : {HcclCMDType::HCCL_CMD_ALLGATHER, Hccl::OpType::ALLGATHER},
54 : {HcclCMDType::HCCL_CMD_REDUCE_SCATTER, Hccl::OpType::REDUCESCATTER},
55 : {HcclCMDType::HCCL_CMD_SEND, Hccl::OpType::SEND},
56 : {HcclCMDType::HCCL_CMD_RECEIVE, Hccl::OpType::RECV},
57 : {HcclCMDType::HCCL_CMD_ALLTOALL, Hccl::OpType::ALLTOALL},
58 : {HcclCMDType::HCCL_CMD_ALLTOALLV, Hccl::OpType::ALLTOALLV},
59 : {HcclCMDType::HCCL_CMD_BROADCAST, Hccl::OpType::BROADCAST},
60 : {HcclCMDType::HCCL_CMD_ALLGATHER_V, Hccl::OpType::ALLGATHERV},
61 : {HcclCMDType::HCCL_CMD_REDUCE_SCATTER_V, Hccl::OpType::REDUCESCATTERV},
62 : {HcclCMDType::HCCL_CMD_REDUCE, Hccl::OpType::REDUCE},
63 : {HcclCMDType::HCCL_CMD_ALLTOALLVC, Hccl::OpType::ALLTOALLVC},
64 : {HcclCMDType::HCCL_CMD_SCATTER, Hccl::OpType::SCATTER},
65 : {HcclCMDType::HCCL_CMD_BATCH_SEND_RECV, Hccl::OpType::BATCHSENDRECV},
66 : {HcclCMDType::HCCL_CMD_HALF_ALLTOALLV, Hccl::OpType::HALFALLTOALLV},
67 : {HcclCMDType::HCCL_CMD_BARRIER, Hccl::OpType::BARRIER},
68 : {HcclCMDType::HCCL_CMD_GATHER, Hccl::OpType::GATHER},
69 : {HcclCMDType::HCCL_CMD_BATCH_GET, Hccl::OpType::BATCHGET},
70 : {HcclCMDType::HCCL_CMD_BATCH_PUT, Hccl::OpType::BATCHPUT},
71 : };
72 :
73 : const std::unordered_map<std::string, Hccl::OpType> OP_TYPE_STR = {
74 : {"HcomAllReduce", Hccl::OpType::ALLREDUCE},
75 : {"HcomAllGather", Hccl::OpType::ALLGATHER},
76 : {"HcomReduceScatter", Hccl::OpType::REDUCESCATTER},
77 : {"HcomSend", Hccl::OpType::SEND},
78 : {"HcomReceive", Hccl::OpType::RECV},
79 : {"HcomAllToAll", Hccl::OpType::ALLTOALL},
80 : {"HcomAllToAllV", Hccl::OpType::ALLTOALLV},
81 : {"HcomBroadcast", Hccl::OpType::BROADCAST},
82 : {"HcomAllGatherV", Hccl::OpType::ALLGATHERV},
83 : {"HcomReduceScatterV", Hccl::OpType::REDUCESCATTERV},
84 : {"HcomReduce", Hccl::OpType::REDUCE},
85 : {"HcomAllToAllVC", Hccl::OpType::ALLTOALLVC},
86 : };
87 : } // namespace Hccl
88 : #endif
|