Skip to content

HCCL模板参数

产品支持情况

  • 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类模板参数说明

Text
template <HcclServerType serverType = HcclServerType::HCCL_SERVER_TYPE_AICPU, const auto& config = DEFAULT_CFG>
class Hccl;

参数说明

表1 Hccl类模板参数说明

参数名称描述
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}。
Text
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接口的方式指定运行的核。

Text
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 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区