HcclCommSetMemoryRange
说明
本接口为试用接口,后续可能存在变更,暂不支持应用于商用产品。
产品支持情况
- Ascend 950PR/Ascend 950DT:不支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
- Atlas 推理系列产品:不支持
- Atlas 训练系列产品:不支持
功能说明
用户通过aclrtReserveMemAddress接口成功申请虚拟内存后,可调用此接口通知HCCL预留的虚拟内存地址。调用此接口后,该虚拟内存对当前进程中的所有通信域可见。
函数原型
HcclResult HcclCommSetMemoryRange(HcclComm comm, void *baseVirPtr, size_t size, size_t alignment, uint64_t flags)
参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| comm | 输入 | HCCL通信域,建议使用Server内最大的通信域,即覆盖最大卡数的通信域。 |
| baseVirPtr | 输入 | 需要预留的虚拟内存基地址,即aclrtReserveMemAddress接口输出的虚拟内存地址。 |
| size | 输入 | 虚拟内存的大小,单位:Byte。 |
| alignment | 输入 | 预留字段。 当前仅支持配置为“0”。 |
| flags | 输入 | 预留字段。 当前仅支持配置为“0”。 |
返回值
HcclResult:接口成功返回HCCL_SUCCESS,其他失败。
约束说明
- 该接口在通信域内首次被调用时会进行建链操作,因此用户首次调用该接口时需确保通信域内所有进程均调用该接口,且调用时刻相同,避免建链超时。后续再调用该接口时,无此约束。
- 该接口仅支持在范围是单Server的通信域内调用,否则会报错。
- 多次调用该接口时,输入的内存地址不能重复或存在区间交叠。
- 其他约束请参见通用约束。