* Copyright (c) 2025 Huawei Technologies Co., Ltd.
* This program is free software, you can redistribute it and/or modify it under the terms and conditions of
* CANN Open Software License Agreement Version 2.0 (the "License").
* Please refer to the License for details. You may not use this file except in compliance with the License.
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
* See LICENSE in the root of the software repository for the full text of the License.
*/
#include "transformer.h"
namespace hccl {
std::map<CheckerOpType, HcclCMDType> g_CheckerOpType2HcclCMDType = {
{CheckerOpType::INVALID, HcclCMDType::HCCL_CMD_INVALID},
{CheckerOpType::BROADCAST, HcclCMDType::HCCL_CMD_BROADCAST},
{CheckerOpType::ALLREDUCE, HcclCMDType::HCCL_CMD_ALLREDUCE},
{CheckerOpType::REDUCE, HcclCMDType::HCCL_CMD_REDUCE},
{CheckerOpType::SEND, HcclCMDType::HCCL_CMD_SEND},
{CheckerOpType::RECEIVE, HcclCMDType::HCCL_CMD_RECEIVE},
{CheckerOpType::ALLGATHER, HcclCMDType::HCCL_CMD_ALLGATHER},
{CheckerOpType::REDUCE_SCATTER, HcclCMDType::HCCL_CMD_REDUCE_SCATTER},
{CheckerOpType::ALLTOALLV, HcclCMDType::HCCL_CMD_ALLTOALLV},
{CheckerOpType::ALLTOALLVC, HcclCMDType::HCCL_CMD_ALLTOALLVC},
{CheckerOpType::ALLTOALL, HcclCMDType::HCCL_CMD_ALLTOALL},
{CheckerOpType::GATHER, HcclCMDType::HCCL_CMD_GATHER},
{CheckerOpType::SCATTER, HcclCMDType::HCCL_CMD_SCATTER},
{CheckerOpType::BATCH_SEND_RECV, HcclCMDType::HCCL_CMD_BATCH_SEND_RECV},
{CheckerOpType::BATCH_PUT, HcclCMDType::HCCL_CMD_BATCH_PUT},
{CheckerOpType::BATCH_GET, HcclCMDType::HCCL_CMD_BATCH_GET},
{CheckerOpType::ALLGATHER_V, HcclCMDType::HCCL_CMD_ALLGATHER_V},
{CheckerOpType::REDUCE_SCATTER_V, HcclCMDType::HCCL_CMD_REDUCE_SCATTER_V},
{CheckerOpType::BATCH_WRITE, HcclCMDType::HCCL_CMD_BATCH_WRITE},
{CheckerOpType::ALL, HcclCMDType::HCCL_CMD_ALL},
{CheckerOpType::MAX, HcclCMDType::HCCL_CMD_MAX}
};
std::map<HcclCMDType, CheckerOpType> g_HcclCMDType2CheckerOpType = {
{HcclCMDType::HCCL_CMD_INVALID, CheckerOpType::INVALID},
{HcclCMDType::HCCL_CMD_BROADCAST, CheckerOpType::BROADCAST},
{HcclCMDType::HCCL_CMD_ALLREDUCE, CheckerOpType::ALLREDUCE},
{HcclCMDType::HCCL_CMD_REDUCE, CheckerOpType::REDUCE},
{HcclCMDType::HCCL_CMD_SEND ,CheckerOpType::SEND},
{HcclCMDType::HCCL_CMD_RECEIVE, CheckerOpType::RECEIVE},
{HcclCMDType::HCCL_CMD_ALLGATHER, CheckerOpType::ALLGATHER},
{HcclCMDType::HCCL_CMD_REDUCE_SCATTER, CheckerOpType::REDUCE_SCATTER},
{HcclCMDType::HCCL_CMD_ALLTOALLV, CheckerOpType::ALLTOALLV},
{HcclCMDType::HCCL_CMD_ALLTOALLVC, CheckerOpType::ALLTOALLVC},
{HcclCMDType::HCCL_CMD_ALLTOALL, CheckerOpType::ALLTOALL},
{HcclCMDType::HCCL_CMD_GATHER, CheckerOpType::GATHER},
{HcclCMDType::HCCL_CMD_SCATTER, CheckerOpType::SCATTER},
{HcclCMDType::HCCL_CMD_BATCH_SEND_RECV, CheckerOpType::BATCH_SEND_RECV},
{HcclCMDType::HCCL_CMD_BATCH_PUT, CheckerOpType::BATCH_PUT},
{HcclCMDType::HCCL_CMD_BATCH_GET, CheckerOpType::BATCH_GET},
{HcclCMDType::HCCL_CMD_ALLGATHER_V, CheckerOpType::ALLGATHER_V},
{HcclCMDType::HCCL_CMD_REDUCE_SCATTER_V, CheckerOpType::REDUCE_SCATTER_V},
{HcclCMDType::HCCL_CMD_BATCH_WRITE, CheckerOpType::BATCH_WRITE},
{HcclCMDType::HCCL_CMD_ALL, CheckerOpType::ALL},
{HcclCMDType::HCCL_CMD_MAX, CheckerOpType::MAX}
};
std::map<CheckerReduceOp, HcclReduceOp> g_CheckerReduceOp2HcclReduceOp = {
{CheckerReduceOp::REDUCE_SUM, HcclReduceOp::HCCL_REDUCE_SUM},
{CheckerReduceOp::REDUCE_PROD, HcclReduceOp::HCCL_REDUCE_PROD},
{CheckerReduceOp::REDUCE_MAX, HcclReduceOp::HCCL_REDUCE_MAX},
{CheckerReduceOp::REDUCE_MIN, HcclReduceOp::HCCL_REDUCE_MIN},
{CheckerReduceOp::REDUCE_RESERVED, HcclReduceOp::HCCL_REDUCE_RESERVED}
};
std::map<HcclReduceOp, CheckerReduceOp> g_HcclReduceOp2CheckerReduceOp = {
{HcclReduceOp::HCCL_REDUCE_SUM, CheckerReduceOp::REDUCE_SUM},
{HcclReduceOp::HCCL_REDUCE_PROD, CheckerReduceOp::REDUCE_PROD},
{HcclReduceOp::HCCL_REDUCE_MAX, CheckerReduceOp::REDUCE_MAX},
{HcclReduceOp::HCCL_REDUCE_MIN, CheckerReduceOp::REDUCE_MIN},
{HcclReduceOp::HCCL_REDUCE_RESERVED, CheckerReduceOp::REDUCE_RESERVED}
};
std::map<CheckerDataType, HcclDataType> g_CheckerDataType2HcclDataType = {
{CheckerDataType::DATA_TYPE_INT8, HcclDataType::HCCL_DATA_TYPE_INT8},
{CheckerDataType::DATA_TYPE_INT16, HcclDataType::HCCL_DATA_TYPE_INT16},
{CheckerDataType::DATA_TYPE_INT32, HcclDataType::HCCL_DATA_TYPE_INT32},
{CheckerDataType::DATA_TYPE_FP16, HcclDataType::HCCL_DATA_TYPE_FP16},
{CheckerDataType::DATA_TYPE_FP32, HcclDataType::HCCL_DATA_TYPE_FP32},
{CheckerDataType::DATA_TYPE_INT64, HcclDataType::HCCL_DATA_TYPE_INT64},
{CheckerDataType::DATA_TYPE_UINT64, HcclDataType::HCCL_DATA_TYPE_UINT64},
{CheckerDataType::DATA_TYPE_UINT8, HcclDataType::HCCL_DATA_TYPE_UINT8},
{CheckerDataType::DATA_TYPE_UINT16, HcclDataType::HCCL_DATA_TYPE_UINT16},
{CheckerDataType::DATA_TYPE_UINT32, HcclDataType::HCCL_DATA_TYPE_UINT32},
{CheckerDataType::DATA_TYPE_FP64, HcclDataType::HCCL_DATA_TYPE_FP64},
{CheckerDataType::DATA_TYPE_BFP16, HcclDataType::HCCL_DATA_TYPE_BFP16},
{CheckerDataType::DATA_TYPE_INT128, HcclDataType::HCCL_DATA_TYPE_INT128},
{CheckerDataType::DATA_TYPE_HIF8, HcclDataType::HCCL_DATA_TYPE_HIF8},
{CheckerDataType::DATA_TYPE_FP8E4M3, HcclDataType::HCCL_DATA_TYPE_FP8E4M3},
{CheckerDataType::DATA_TYPE_FP8E5M2, HcclDataType::HCCL_DATA_TYPE_FP8E5M2},
{CheckerDataType::DATA_TYPE_RESERVED, HcclDataType::HCCL_DATA_TYPE_RESERVED}
};
std::map<HcclDataType, CheckerDataType> g_HcclDataType2CheckerDataType = {
{HcclDataType::HCCL_DATA_TYPE_INT8, CheckerDataType::DATA_TYPE_INT8},
{HcclDataType::HCCL_DATA_TYPE_INT16, CheckerDataType::DATA_TYPE_INT16},
{HcclDataType::HCCL_DATA_TYPE_INT32, CheckerDataType::DATA_TYPE_INT32},
{HcclDataType::HCCL_DATA_TYPE_FP16, CheckerDataType::DATA_TYPE_FP16},
{HcclDataType::HCCL_DATA_TYPE_FP32, CheckerDataType::DATA_TYPE_FP32},
{HcclDataType::HCCL_DATA_TYPE_INT64, CheckerDataType::DATA_TYPE_INT64},
{HcclDataType::HCCL_DATA_TYPE_UINT64, CheckerDataType::DATA_TYPE_UINT64},
{HcclDataType::HCCL_DATA_TYPE_UINT8, CheckerDataType::DATA_TYPE_UINT8},
{HcclDataType::HCCL_DATA_TYPE_UINT16, CheckerDataType::DATA_TYPE_UINT16},
{HcclDataType::HCCL_DATA_TYPE_UINT32, CheckerDataType::DATA_TYPE_UINT32},
{HcclDataType::HCCL_DATA_TYPE_FP64, CheckerDataType::DATA_TYPE_FP64},
{HcclDataType::HCCL_DATA_TYPE_BFP16, CheckerDataType::DATA_TYPE_BFP16},
{HcclDataType::HCCL_DATA_TYPE_INT128, CheckerDataType::DATA_TYPE_INT128},
{HcclDataType::HCCL_DATA_TYPE_HIF8, CheckerDataType::DATA_TYPE_HIF8},
{HcclDataType::HCCL_DATA_TYPE_FP8E4M3, CheckerDataType::DATA_TYPE_FP8E4M3},
{HcclDataType::HCCL_DATA_TYPE_FP8E5M2, CheckerDataType::DATA_TYPE_FP8E5M2},
{HcclDataType::HCCL_DATA_TYPE_RESERVED, CheckerDataType::DATA_TYPE_RESERVED}
};
std::map<CheckerDevType, DevType> g_CheckerDevType2HcclDevType = {
{CheckerDevType::DEV_TYPE_910, DevType::DEV_TYPE_910},
{CheckerDevType::DEV_TYPE_310P3, DevType::DEV_TYPE_310P3},
{CheckerDevType::DEV_TYPE_910B, DevType::DEV_TYPE_910B},
{CheckerDevType::DEV_TYPE_310P1, DevType::DEV_TYPE_310P1},
{CheckerDevType::DEV_TYPE_910_93, DevType::DEV_TYPE_910_93},
{CheckerDevType::DEV_TYPE_950, DevType::DEV_TYPE_950}
};
std::map<DevType, CheckerDevType> g_HcclDevType2CheckerDevType = {
{DevType::DEV_TYPE_910, CheckerDevType::DEV_TYPE_910},
{DevType::DEV_TYPE_310P3, CheckerDevType::DEV_TYPE_310P3},
{DevType::DEV_TYPE_910B, CheckerDevType::DEV_TYPE_910B},
{DevType::DEV_TYPE_310P1, CheckerDevType::DEV_TYPE_310P1},
{DevType::DEV_TYPE_910_93, CheckerDevType::DEV_TYPE_910_93},
{DevType::DEV_TYPE_NOSOC, CheckerDevType::DEV_TYPE_NOSOC},
{DevType::DEV_TYPE_950, CheckerDevType::DEV_TYPE_950},
{DevType::DEV_TYPE_COUNT, CheckerDevType::DEV_TYPE_COUNT},
};
}