---
title: 使用前必读
description: "“零拷贝”为试用功能，后续可能存在变更，暂不支持应用于生产环境。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclcpp_07_0053.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclcpp_07_0053.html
indexId: 33792918a7c211c5d8121f6e86ec84022b4f677fcc1bb9cb97a5cf5f1a8a870361
---
# 使用前必读

“零拷贝”为试用功能，后续可能存在变更，暂不支持应用于生产环境。


#### 什么是零拷贝

单算子模式下算子的输入输出buffer是动态变化的，为了避免每次通信都进行两端进程的内存注册，HCCL在通信域内部构造了一个buffer进行中转完成集合通信，因此会引入额外的内存拷贝开销。

为了降低上述内存拷贝开销，使得HCCL可以直接对业务传入的内存进行操作，避免使用中转HCCL buffer，HCCL提供了本节所述接口，从而实现零拷贝。


#### 通用约束

零拷贝功能当前存在如下使用限制与约束：

- 仅支持Atlas A3 训练系列产品 / Atlas A3 推理系列产品。
- 相关接口仅支持Ascend Extension for PyTorch插件后端代码调用，其他场景暂不支持。
- 仅支持通信算子展开模式为AI CPU的场景。
- 仅支持集合通信算子AllGather、ReduceScatter、Broadcast、AllReduce，其中ReduceScatter、AllReduce算子开启零拷贝功能后会修改用户的输入内存。
- 算子的输入、输出内存必须是激活内存。
- 开启零拷贝功能时，建议开发者使用较大的通信域（即覆盖最大卡数的通信域）进行虚拟地址设置与激活，此通信域中所有进程调用集合通信算子时都可实现零拷贝（未设置、激活虚拟地址的通信域无法实现零拷贝）。
