HCCL模板参数
【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 200I/500 A2 推理产品:不支持
- Atlas 推理系列产品AI Core:不支持
- Atlas 推理系列产品Vector Core:不支持
- Atlas 训练系列产品:不支持
功能说明
创建HCCL对象时需要传入模板参数。
函数原型
Hccl类定义如下,模板参数说明见表1 Hccl类模板参数说明。
template <HcclServerType serverType = HcclServerType::HCCL_SERVER_TYPE_AICPU, const auto& config = DEFAULT_CFG> class Hccl;参数说明
表1Hccl类模板参数说明
| 参数名称 | 描述 | | --- | --- | | serverType | 支持的服务端类型。HcclServerType枚举类型,取值如下。
HCCL_SERVER_TYPE_AICPU:AI CPU服务端。
HCCL_SERVER_TYPE_CCU:CCU服务端。
HCCL_SERVER_TYPE_END:预留参数,不支持使用。
对于Ascend 950PR/Ascend 950DT,当前仅支持HCCL_SERVER_TYPE_CCU。
对于Atlas A3 训练系列产品/Atlas A3 推理系列产品,当前仅支持HCCL_SERVER_TYPE_AICPU。
对于Atlas A2 训练系列产品/Atlas A2 推理系列产品,当前仅支持HCCL_SERVER_TYPE_AICPU。 | | config | 用于指定向服务端下发任务的核。HcclServerConfig类型,定义如下代码所示,含义如下。
type:向服务端下发任务的核的类型。CoreType类型,可取值为:
DEFAULT:表示不指定AIC核或者AIV核。
ON_AIV:表示指定为AIV核。
ON_AIC:表示指定为AIC核。
blockId:向服务端下发任务的核的ID。
默认值DEFAULT_CFG = {CoreType::DEFAULT, 0}。 |
enum HcclServerType { HCCL_SERVER_TYPE_AICPU = 0, HCCL_SERVER_TYPE_CCU, HCCL_SERVER_TYPE_END // 预留参数,不支持使用 }; struct HcclServerConfig { CoreType type; int64_t blockId; }; enum class CoreType : uint8_t { DEFAULT, ON_AIV, ON_AIC };返回值说明
无
约束说明
无
调用示例
通过如下传入模板参数config的方式创建Hccl类对象,指定HCCL客户端仅在AIV的10号核上发送通信消息给服务端,替代通过调用GetBlockIdx接口的方式指定运行的核。
static constexpr HcclServerConfig HCCL_CFG = {CoreType::ON_AIV, 10}; // 选择AICPU作为服务端 Hccl<HcclServerType::HCCL_SERVER_TYPE_AICPU, HCCL_CFG> hccl; // 选择CCU作为服务端 Hccl<HcclServerType::HCCL_SERVER_TYPE_CCU, HCCL_CFG> hccl;【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考