DistributeBarrierExtend
【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | × |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
算子功能:完成通信域内的全卡同步,xRef仅用于构建Tensor依赖,接口内不对xRef做任何操作。
相较于MoeDistributeCombineV2算子,该算子变更如下: - 新增`context`入参,存入通信域相关信息; 详细说明请参考以下参数说明。参数说明
| 参数名 | 输入/输出 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| context | 输入 | 本卡通信域信息数据。 | INT32 | ND |
| xRef | 输入 | 无业务语义,仅用于输入Tensor依赖,接口内不做任何操作。 | BFLOAT16, FLOAT16、FLOAT32、BOOL、INT8、INT16、INT32、INT64、UINT8、UINT16、UINT32、UINT64、FLOAT8_E5M2、FLOAT8_E4M3FN、FLOAT4_E1M2、FLOAT4_E2M1、HIFLOAT8、INT4 | ND |
| timeOutOptional | 输入 | 超时时间设置,如果在此时间内无响应,则认为超时。 | INT32 | ND |
| elasticInfoOptional | 输入 | EP通信域动态缩容信息: Atlas A2系列产品 :不支持,传空指针; Atlas A3系列产品 :1D Tensor(shape 4 + 2 * epWorldSize,),INT32类型,前4位为缩容配置,后2*epWorldSize为rank映射表。 | INT32 | ND(支持非连续Tensor) |
| group | 输入 | 通信域名称,进行所有卡同步的通信域。 | STRING | ND |
| worldSize | 输入 | 通信域大小。 | UINT64 | ND |
- Ascend 950PR/Ascend 950DT :timeOutOptional参数里的超时时间单位为us,建议配置5000000us,根据实际环境不同超时时间下限可能不同。
约束说明
通信域使用约束:
- 一个模型中的aclnnDistributeBarrier需要使用单独通信域,该通信域中不允许有其他算子。
使用场景说明:
- 在需要进行全卡同步的网络模型中调用该算子,可以屏蔽快慢卡引入的性能波动问题,协助分析性能。
- 可以连续调用,入图时,需将上个算子的输入、下个算子的输出作为入参传入接口。
- 当使能elasticInfo时,要确保Dispatch/Combine也传入了此参数,并且此elasticInfo与Dispatch/Combine中的elasticInfo保持一致。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_distribute_barrier.cpp | 通过aclnnDistributeBarrier接口方式调用distribute_barrier_extend算子。 |
【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考