业务配置接口

Register

功能说明

接收处理客户端的注册请求,为订阅相关业务配置做初始化准备。

函数原型

rpc Register(ClientInfo) returns (Status) {}

输入参数说明

参数 类型(Protobuf定义) 说明
ClientInfo

message ClientInfo{

string jobId = 1;

string role = 2;

}

ClientInfo.jobId:任务ID。

ClientInfo.role:客户端角色。

返回值说明

返回值 类型(Protobuf定义) 说明
Status

message Status{

int32 code = 1;

string info =2;

}

Status.code:返回码。

  • 取值为0:表示注册成功。
  • 其他值:表示注册失败。

Status.info:返回信息描述。

SubscribeRankTable

功能说明

接收客户端订阅RankTable请求。服务端为每一个任务分配一个消息队列,并侦听消息队列是否存在待发送的消息,若存在则通过gRPC stream发送给客户端。

函数原型

rpc SubscribeRankTable(ClientInfo) returns (stream RankTableStream) {}

输入参数说明

参数 类型(Protobuf定义) 说明
ClientInfo

message ClientInfo{

string jobId = 1;

string role = 2;

}

ClientInfo.jobId:任务ID。

ClientInfo.role:客户端角色。

返回值说明

返回值 类型(Protobuf定义) 说明
stream grpc stream
  • 该接口返回gRPC stream(返回值的具体数据结构基于客户端选择的编程语言)。
  • 客户端可以调用stream的Receive方法(具体方法名基于客户端选择的编程语言)接收服务端推送的数据。

发送数据说明

返回值 类型(Protobuf定义) 说明
RankTableStream

message RankTableStream{

string jobId = 1;

string rankTable = 2;

}

RankTableStream.jobId:任务ID。

RankTableStream.rankTable:RankTable信息,各字段的详细说明如表1所示。

global-ranktable文件说明

ClusterD会生成global-ranktable在RankTable字段作为返回消息。global-ranktable中部分字段来自于hccl.json文件,关于hccl.json文件的详细说明请参见hccl.json文件说明

  • 示例如下。

    {
        "version": "1.0",
        "status": "completed",
        "server_group_list": [
            {
                "group_id": "2",
                "deploy_server": "0",
                "server_count": "1",
                "server_list": [
                    {
                        "device": [
                            {
                                "device_id": "x",
                                "device_ip": "xx.xx.xx.xx",
                                "device_logical_id": "x",
                                "rank_id": "x"
                            }
                        ],
                        "server_id": "xx.xx.xx.xx",
                        "server_ip": "xx.xx.xx.xx"
                    }
                ]
            }
        ]
    }
    
  • Atlas A3 训练系列产品示例如下。

    {
        "version": "1.2",
        "status": "completed",
        "server_group_list": [
            {
                "group_id": "2",
                "deploy_server": "1",
                "server_count": "1",
                "server_list": [
                    {
                        "device": [
                            {
                                "device_id": "0",
                                "device_ip": "xx.xx.xx.xx",
                                "super_device_id": "xxxxx",
                                "device_logical_id": "0",
                                "rank_id": "0"
                            }
                        ],
                        "server_id": "xx.xx.xx.xx",
                        "server_ip": "xx.xx.xx.xx"
                    }
                ],
                "super_pod_list": [
                    {
                        "super_pod_id": "0",
                        "server_list": [
                            {
                                "server_id": "xx.xx.xx.xx"
                            }
                        ]
                    }
                ]
            }
        ]
    }
    

表 1 global-ranktable字段说明

字段 说明
version 版本
status 状态
server_group_list 服务组列表
group_id 任务组编号
server_count 服务器数量
server_list 服务器列表
server_id AI Server标识,全局唯一
server_ip Pod IP
device_id NPU的设备ID
device_ip NPU的设备IP
super_device_id Atlas A3 训练系列产品超节点内NPU的唯一标识
rank_id NPU对应的训练rank ID
device_logical_id NPU的逻辑ID
super_pod_list 超节点列表
super_pod_id 逻辑超节点ID