HcclCommMemReg
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
√ |
☓ |
|
☓ |
|
☓ |
|
☓ |
|
☓ |
功能说明
向通信域注册已申请的内存,并获取对应的注册句柄。
函数原型
1 | HcclResult HcclCommMemReg(HcclComm comm, const char *memTag, const CommMem *mem, HcclMemHandle *memHandle) |
参数说明
参数名 |
输入/输出 |
说明 |
||
|---|---|---|---|---|
comm |
输入 |
通信域句柄。 HcclComm类型的定义如下:
|
||
memTag |
输入 |
内存字符串标签,最大字符长度为HCCL_OP_TAG_LEN_MAX。 const uint32_t HCCL_OP_TAG_LEN_MAX = 255; |
||
mem |
输入 |
内存信息,CommMem类型的定义可参见CommMem。 |
||
memHandle |
输出 |
内存句柄。 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); |
父主题: 通信域资源管理