---
title: HcclCommSetMemoryRange
description: "本接口为试用接口，后续可能存在变更，暂不支持应用于生产环境。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclcpp_07_0054.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclcpp_07_0054.html
indexId: 28dcedffecfda7edaa28c9c8c453729a66d27dce2f8e2915613f1e3d13f7e20661
---
# HcclCommSetMemoryRange

本接口为试用接口，后续可能存在变更，暂不支持应用于生产环境。


#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | ☓ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | ☓ |
| Atlas 200I/500 A2 推理产品 | ☓ |
| Atlas 推理系列产品 | ☓ |
| Atlas 训练系列产品 | ☓ |


#### 功能说明

用户通过aclrtReserveMemAddress(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0114.html)接口成功申请虚拟内存后，可调用此接口通知HCCL预留的虚拟内存地址。调用此接口后，该虚拟内存对当前进程中的所有通信域可见。


#### 函数原型

```
HcclResult HcclCommSetMemoryRange(HcclComm comm, void *baseVirPtr, size_t size, size_t alignment, uint64_t flags)
```


#### 参数说明

| 参数名 | 输入/输出 | 描述 |
| --- | --- | --- |
| comm | 输入 | HCCL通信域，建议使用Server内最大的通信域，即覆盖最大卡数的通信域。 |
| baseVirPtr | 输入 | 需要预留的虚拟内存基地址，即aclrtReserveMemAddress(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/runtimeapi/aclcppdevg\_03\_0114.html)接口输出的虚拟内存地址。 |
| size | 输入 | 虚拟内存的大小，单位：Byte。 |
| alignment | 输入 | 预留字段。 当前仅支持配置为“0”。 |
| flags | 输入 | 预留字段。 当前仅支持配置为“0”。 |


#### 返回值

HcclResult：接口成功返回HCCL_SUCCESS，其他失败。


#### 约束说明

- 该接口在通信域内首次被调用时会进行建链操作，因此用户首次调用该接口时需确保通信域内所有进程均调用该接口，且调用时刻相同，避免建链超时。后续再调用该接口时，无此约束。
- 该接口仅支持在范围是单Server的通信域内调用，否则会报错。
- 多次调用该接口时，输入的内存地址不能重复或存在区间交叠。
- 其他约束请参见  通用约束
。
