CANN/Ascend C HCCL Tiling构造函数
HCCL Tiling构造函数【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit功能说明用于创建一个Mc2CcTilingConfig对象。函数原型Mc2CcTilingConfig(const std::string groupName, uint32_t opType, const std::string algConfig, uint32_t reduceType 0, uint8_t dstDataType 0, uint8_t srcDataType 0, uint8_t commEngine 0)参数说明表1参数说明参数名输入/输出描述groupName输入当前通信任务所在的通信域。string类型支持的最大长度为128字节。opType输入表示通信任务类型。uint32_t类型。HCCL API提供HcclCMDType枚举定义作为该参数的取值具体支持的通信任务类型及取值请参考表2。algConfig输入通信算法配置。string类型支持的最大长度为128字节。针对Ascend 950PR/Ascend 950DT该参数为预留字段配置后不生效默认仅支持FullMesh算法。FullMesh算法即NPU之间的全连接任意两个NPU之间可以直接进行数据收发。针对Atlas A3 训练系列产品/Atlas A3 推理系列产品当前支持的取值为AllReducelevel0:doubleringAllReduce通信任务。AllGatherlevel0:doubleringAllGather通信任务。ReduceScatterlevel0:doubleringReduceScatter通信任务。AlltoAlllevel0:fullmesh;level1:pairwiseAlltoAllV和AlltoAll通信任务。BatchWritelevel0:fullmeshBatchWrite通信任务。针对Atlas A2 训练系列产品/Atlas A2 推理系列产品该参数为预留字段配置后不生效默认仅支持FullMesh算法。FullMesh算法即NPU之间的全连接任意两个NPU之间可以直接进行数据收发。reduceType输入归约操作类型仅对有归约操作的通信任务生效。uint32_t类型取值详见表2。dstDataType输入通信任务中输出数据的数据类型。uint8_t类型该参数的取值范围请参考表1。Ascend 950PR/Ascend 950DT不同通信任务支持的输出数据类型不同具体为对于AllReduce、AllGather、AllToAll、AllToAllV、AllToAllVWrite通信任务输出的数据类型必须与输入的数据类型一致。各通信任务支持的输入数据类型请参考srcDataType。对于ReduceScatter通信任务当输入的数据类型为int16_t、int32_t、half、float、bfloat16_t时输出的数据类型必须与其一致当输入的数据类型为int8_t、hifloat8_t、fp8_e5m2_t、fp8_e4m3fn_t时输出的数据类型必须为half、bfloat16_t、float三者之一。Atlas A3 训练系列产品/Atlas A3 推理系列产品该参数暂不支持配置后不生效。Atlas A2 训练系列产品/Atlas A2 推理系列产品该参数暂不支持配置后不生效。srcDataType输入通信任务中输入数据的数据类型。uint8_t类型该参数的取值范围请参考表1。Ascend 950PR/Ascend 950DT不同通信任务支持的输入数据类型如下AllReduce通信任务支持的输入类型为int16_t、half、bfloat16_t、int32_t、float。AllGather、AllToAll、AllToAllV、AllToAllVWrite通信任务支持的输入类型为int8_t、uint8_t、hifloat8_t、fp8_e5m2_t、fp8_e4m3fn_t、int16_t、uint16_t、half、bfloat16_t、int32_t、uint32_t、float、int64_t、double。ReduceScatter通信任务支持的输入类型为int8_t、hifloat8_t、fp8_e5m2_t、fp8_e4m3fn_t、int16_t、half、bfloat16_t、int32_t、float。Atlas A3 训练系列产品/Atlas A3 推理系列产品该参数暂不支持配置后不生效。针对Atlas A2 训练系列产品/Atlas A2 推理系列产品该参数暂不支持配置后不生效。commEngine输入通信引擎。uint8_t类型该参数的取值范围请参考HcclCommConfig中的hcclOpExpansionMode参数的取值说明。表2HcclCMDType参数说明| 数据类型 | 说明 | | --- | --- | | HcclCMDType | 通信任务类型。HcclCMDType枚举类定义如下代码所示。针对Ascend 950PR/Ascend 950DT当前支持的通信任务类型为HCCL_CMD_ALLREDUCE、HCCL_CMD_ALLGATHER、HCCL_CMD_REDUCE_SCATTER、HCCL_CMD_ALLTOALL、HCCL_CMD_ALLTOALLV、HCCL_CMD_HALF_ALLTOALLV。针对Atlas A3 训练系列产品/Atlas A3 推理系列产品当前支持的通信任务类型为HCCL_CMD_ALLREDUCE、HCCL_CMD_ALLGATHER、HCCL_CMD_REDUCE_SCATTER、HCCL_CMD_ALLTOALL、HCCL_CMD_ALLTOALLV、HCCL_CMD_BATCH_WRITE。针对Atlas A2 训练系列产品/Atlas A2 推理系列产品当前支持的通信任务类型为HCCL_CMD_ALLREDUCE、HCCL_CMD_ALLGATHER、HCCL_CMD_REDUCE_SCATTER、HCCL_CMD_ALLTOALL、HCCL_CMD_BATCH_WRITE。 |enum class HcclCMDType { HCCL_CMD_INVALID 0, HCCL_CMD_BROADCAST 1, HCCL_CMD_ALLREDUCE, HCCL_CMD_REDUCE, HCCL_CMD_SEND, HCCL_CMD_RECEIVE, HCCL_CMD_ALLGATHER, HCCL_CMD_REDUCE_SCATTER, HCCL_CMD_ALLTOALLV, HCCL_CMD_ALLTOALLVC, HCCL_CMD_ALLTOALL, HCCL_CMD_GATHER, HCCL_CMD_SCATTER, HCCL_CMD_BATCH_SEND_RECV, HCCL_CMD_BATCH_PUT, HCCL_CMD_BATCH_GET, HCCL_CMD_ALLGATHER_V, HCCL_CMD_REDUCE_SCATTER_V, HCCL_CMD_BATCH_WRITE, HCCL_CMD_HALF_ALLTOALLV 20, HCCL_CMD_ALL };返回值说明无约束说明无调用示例const char* groupName testGroup; uint32_t opType HCCL_CMD_REDUCE_SCATTER; std::string algConfig ReduceScatterlevel0:fullmesh; uint32_t reduceType HCCL_REDUCE_SUM; uint8_t dstDataType HCCL_DATA_TYPE_FP16; uint8_t srcDataType HCCL_DATA_TYPE_FP16; uint8_t commEngine 0; AscendC::Mc2CcTilingConfig mc2CcTilingConfig( groupName, opType, algConfig, reduceType, dstDataType, srcDataType, commEngine); // 构造函数 mc2CcTilingConfig.GetTiling(tiling-mc2InitTiling); // tiling为算子组装的TilingData结构体 mc2CcTilingConfig.GetTiling(tiling-reduceScatterTiling);【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考