开发者
资源

HcclCommMemReg

产品支持情况

产品

是否支持

Atlas 350 加速卡

Atlas A3 训练系列产品/Atlas A3 推理系列产品

Atlas A2 训练系列产品/Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

功能说明

向通信域注册已申请的内存,并获取对应的注册句柄。

函数原型

1
HcclResult HcclCommMemReg(HcclComm comm, const char *memTag, const CommMem *mem, HcclMemHandle *memHandle)

参数说明

参数名

输入/输出

说明

comm

输入

通信域句柄。

HcclComm类型的定义如下:

1
typedef void *HcclComm;

memTag

输入

内存字符串标签,最大字符长度为HCCL_OP_TAG_LEN_MAX。

const uint32_t HCCL_OP_TAG_LEN_MAX = 255;

mem

输入

内存信息,CommMem类型的定义可参见CommMem

memHandle

输出

内存句柄。

HcclMemHandle类型的定义如下:

1
typedef void *HcclMemHandle;

返回值

HcclResult:接口成功返回HCCL_SUCCESS,其他失败。

约束说明

  • 一个通信域内,同一个memTag,只允许注册一块内存。
  • 一个通信域内,相同memTag和mem重复注册,会复用已有的注册内存句柄。
  • 一个通信域内,内存注册不允许有交集。

调用示例

1
2
3
4
5
6
7
8
HcclComm comm; // 通信域句柄,省略获取
char* memTag = "memTag"; // 内存标签
CommMem memInfo; // 内存信息
memInfo.addr = 0x00; // 配置已申请的内存地址     
memInfo.size = 1024; // 配置已申请的内存大小
memInfo.type = COMM_MEM_TYPE_DEVICE; // 配置已申请的内存类型
HcclMemHandle memHandle; // 内存句柄
HcclCommMemReg(comm, memTag, &memInfo, &memHandle);