准备昇腾AI处理器资源配置文件

配置文件说明

进行训练之前,需要准备昇腾AI处理器资源配置文件(即Rank table文件),并上传到当前运行环境,该文件用于定义训练的昇腾AI处理器资源信息。最终通过环境变量RANK_TABLE_FILE指定ranktable文件路径。

ranktable文件内容格式按照json格式要求,以2p场景为例,文件可以命名为rank_table_2p.json,文件配置示例请见本文介绍。

使用前须知

  1. 在ranktable文件中配置需要参与训练的昇腾AI处理器数目,当前支持两种配置模板,全新场景推荐使用模板一,模板二用于兼容部分已有场景。
  2. 如果使用1台训练服务器(Server),要求实际参与集合通信的昇腾AI处理器数目只能为1/2/4/8,且0-3卡和4-7卡各为一个组网,使用2张卡或4张卡训练时,不支持跨组网创建设备集群。
  3. 如果使用Server集群,即由集群管理主节点+一组训练服务器(Server)组成训练服务器集群,要求参与集合通信的的昇腾AI处理器数目只能为8*n(其中n为参与训练的Server个数,上限为512)。且n为2的指数倍情况下,集群性能最好,建议用户优先采用此种方式进行集群组网。
  4. Atlas 300T 训练卡(型号 9000)场景下,要求配置的昇腾AI处理器数目不大于服务器上实际的数目,并且必须使用模板一配置。

模板一(推荐使用)

{
"server_count":"1",  //server数目,此例中,只有一个AI server
"server_list":
[
   {
        "device":[   // server中的device列表
                       {
                        "device_id":"0",   // 处理器HDC通道号
                        "device_ip":"192.168.1.8",    // 处理器真实网卡IP
                        "rank_id":"0"     // rank的标识,rankID从0开始
                        },
                        {
                         "device_id":"1",
                         "device_ip":"192.168.1.9", 
                         "rank_id":"1"
                         }
                  ],
         "server_id":"10.0.0.10"   //server标识,以点分十进制表示IP字符串
    }
],
"status":"completed",   // ranktable可用标识,completed为可用
"version":"1.0"         // ranktable模板版本信息,当前必须为"1.0"
}
表1 ranktable文件说明(模板一)

配置项

配置说明

可选/必选

server_count

本次参与训练的Server实例个数。

必选

status

Rank table可用标识。

  • completed:表示Rank table可用,可执行训练。
  • initializing:表示Rank table不可用,不可执行训练。

必选

version

Rank table模板版本信息。当前仅支持配置为1.0。

必选

server_list

本次参与训练的Server实例列表。

必选

server_id

Server物理IP,以点分十进制表示的字符串,配置示例:10.0.0.10

必选

device_id

昇腾AI处理器物理ID,即Device在Server上的序列号,对应HDC通道号。

取值范围:[0-7]

必选

device_ip

昇腾AI处理器集成网卡IP,全局唯一,以点分十进制表示的字符串,配置示例:192.168.1.8。

可以在当前Server执行指令cat /etc/hccn.conf获取网卡IP,例如:

address_0=xx.xx.xx.xx
netmask_0=xx.xx.xx.xx
netdetect_0=xx.xx.xx.xx
address_1=xx.xx.xx.xx
netmask_1=xx.xx.xx.xx
netdetect_1=xx.xx.xx.xx
...

查询到的address_xx即为网卡IP,address后的序号为昇腾AI处理器物理ID,即device_id,后面的ip地址即为需要用户填入的该device对应的网卡IP。

说明:
  • 典型8网口集合通信场景下:ranktable文件中的devices字段会记录每个device可用的网口ip信息,如下所示为device_id为0,网口ip地址为192.168.100.101的devices信息:
    "devices": [{"device_id": "0", "device_ip": "192.168.100.101"}]
  • 网口裁剪的场景下,通过ranktable校验得到各Server可用的1/2/4个网口信息,当devices中device_ip字段为空字符串" "时,代表该device的网口不在集合通信中使用,如下所示为device_id为0网口不使用时的devices信息:
    "devices": [{"device_id": "0", "device_ip": ""}]

必选

rank_id

Rank唯一标识,从0开始配置,且全局唯一,取值范围:[0, 总Device数量-1]

必选

模板二(兼容部分已有场景)

{
"status":"completed",   // Rank table可用标识,completed为可用
"group_count":"1",      // group数量,建议为1
"group_list":           // group列表
 [
   {
    "group_name":"hccl_world_group",//group名称,建议hccl_world_group
    "instance_count":"2",        // instance实例个数,容器场景下可理解为容器个数
    "device_count":"2",         // group中的所有device数目
    "instance_list":[
        {
           "pod_name":"tf-bae41",     //instance实例名称,一般为容器名称
           "server_id":"10.0.0.10",   //server标识,以IP格式填入
           "devices":[                //instance实例的device列表
            {
              "device_id":"0",           // 昇腾AI处理器HDC通道号
              "device_ip":"192.168.1.8"  // 昇腾AI处理器真实网卡IP
            }
           ]
        },
        {
            "pod_name":"tf-tbdf1",             
            "server_id":"10.0.0.10",
            "devices":[
                {
                    "device_id":"1",
                    "device_ip":"192.168.1.9"  
                }
             ]
          }
       ]
   }     
 ] 
}
表2 ranktable文件说明(模板二)

配置项

配置说明

可选/必选

status

Rank table可用标识。

  • completed:表示Rank table可用,可执行训练。
  • initializing:表示Rank table不可用,不可执行训练。

必选

group_count

用户申请的Group数量,建议配置为1。

必选

group_list

Group列表。

必选

group_name

Group名称,当group_count为1时,建议配置为hccl_world_group或为空。因为当前版本无论定义为任何值,都会创建名称为hccl_world_group的group。

如果通过该配置文件创建了多个group,则系统会自动将多个group合并为一个group名称为hccl_world_group的group资源。

可选

instance_count

和instance_list中pod_name个数保持一致,例如:容器场景下为容器实际数量。

必选

device_count

group中设备数量。

必选

instance_list

-

-

pod_name

用户自定义配置,保持instance_list内全局唯一。

必选

server_id

Server物理IP,以点分十进制表示的字符串,配置示例:10.0.0.10

必选

devices

-

-

device_id

昇腾AI处理器物理ID,即Device在Server上的序列号,对应HDC通道号。

取值范围:[0-7]

必选

device_ip

昇腾AI处理器集成网卡IP,全局唯一,以点分十进制表示的字符串,配置示例:192.168.1.8。

可以在当前Server执行指令cat /etc/hccn.conf获取网卡IP。

说明:
  • 典型8网口集合通信场景下:ranktable文件中的devices字段会记录每个device可用的网口ip信息,如下所示为device_id为0,网口ip地址为192.168.100.101的devices信息:
    "devices": [{"device_id": "0", "device_ip": "192.168.100.101"}]
  • 网口裁剪的场景下,通过ranktable校验得到各Server可用的1/2/4个网口信息,当devices中device_ip字段为空字符串" "时,代表该device的网口不在集合通信中使用,如下所示为device_id为0网口不使用时的devices信息:
    "devices": [{"device_id": "0", "device_ip": ""}]

必选