create_group

函数原型

def create_group(group, rank_num, rank_ids)

功能说明

创建集合通信用户自定义group。

参数说明

参数名

输入/输出

描述

group

输入

String类型,最大长度为128字节,含结束符。

group名称,集合通信group的标识,不能为hccl_world_group。

hccl_world_group是默认group,由ranktable文件创建,不能通过该接口创建,如果用户传入的group如果是hccl_world_group,创建group失败。

rank_num

输入

int类型。

组成该group的rank数量。

最大值为4096。

rank_ids

输入

list类型。

组成该group的world_rank_id列表。

在不同单板类型上,有不同的限制。

对于Server单机场景,rank_ids满足如下条件:rank数量必须为1/2/4/8。且要求rank数量为2/4时要求选取的昇腾AI处理器同属一个cluster。

对于Server集群场景,rank_ids满足如下条件:
  • 各Server要选取相同数量的rank(且数量要求为1/2/4/8)。
  • 各Server选取的rank对应位置要相等(即rank id按8取模相等)。
  • 各Server选取rank数量为2/4时要求选取的昇腾AI处理器同属一个cluster(即rank id按8取模余数都小于4或都大于等于4)。
  • 举例:

    假设对三台Server创建group,三台Server的rank id分别为{0,1,2,3,4,5,6,7},{8,9,10,11,12,13,14,15},{16,17,18,19,20,21,22,23}。

    则满足要求的rank_ids列表可以是:rank_ids=[1,9,17];

    rank_ids=[1,2,9,10,17,18];rank_ids=[4,5,6,7,12,13,14,15,20,21,22,23]。

对于Atlas 300T 训练卡(型号 9000)场景,rank_ids满足如下条件:rank数量必须为1/2/4/8。

返回值

无。

调用示例

from npu_bridge.npu_init import *
create_group(“myGroup”, 4, [0, 1, 2, 3])

约束说明