set_split_strategy_by_size
【免费下载链接】hcommHCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm
产品支持情况
- Ascend 950PR/Ascend 950DT:支持
- Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
- Atlas 推理系列产品:支持
- Atlas 训练系列产品:支持
[!NOTE]说明 针对Atlas A2 训练系列产品/Atlas A2 推理系列产品,仅支持Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框。 针对Atlas 推理系列产品,仅支持Atlas 300I Duo 推理卡。
功能说明
基于梯度数据量百分比,在集合通信group内设置反向梯度切分策略,实现allreduce的融合,用于进行集合通信的性能调优。
函数原型
def set_split_strategy_by_size(dataSizeList, group="hccl_world_group")参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| dataSizeList | 输入 | list类型。 梯度参数数据量百分比列表。 - 梯度的索引id列表需为非负,且梯度数据量序列总百分比之和必须为100。 - 梯度的切分最多支持8段。 - 比如模型总共有150M梯度数据量,需要切分90M,30M,30M三段,则可以设置dataSizeList =[60,20,20]。 |
| group | 输入 | String类型,最大长度为128字节,含结束符。 group名称,可以为"hccl_world_group"或自定义group,默认为"hccl_world_group"。 |
返回值
无。
约束说明
调用该接口的rank必须在当前接口入参group定义的范围内,不在此范围内的rank调用该接口会失败。
在同时基于梯度数据量百分比及梯度的索引id设置反向梯度切分策略时,以基于梯度数据量百分比设置结果优先。
若用户不调用梯度切分接口设置切分策略,则会按默认反向梯度切分策略切分。
默认切分策略:ResNet50的最优切分位置,即按梯度数据量切分为2段,第一段数据量为96.54%,第二段数据量为3.46%。
调用示例
from hccl.split.api import * set_split_strategy_by_size([60, 20, 20], "group")【免费下载链接】hcommHCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。项目地址: https://gitcode.com/cann/hcomm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考