昇腾社区首页
中文
注册

使用MindCluster Ascend Deployer配置

为实现后续分布式训练时各训练节点上模型的参数同步,需要为每台训练节点的NPU网口配置参数面网络。本章节仅提供批量配置训练节点NPU网口网络信息的方法。

对应的交换机配置和参数面网络介绍请参见Ascend Training Solution 24.0.0 组网指南(Atlas A2训练产品)》中的“参数面网络配置示例”>“配置示例(选择对应的产品)”>“配置Leaf交换机”(可在Ascend Training Solution选择您使用的服务器类型相关文档进行查看)。

前提条件

  • MindCluster Ascend Deployer执行机上已存在MindCluster Ascend Deployer执行下载操作后的resources/pylibs目录。
  • 所有节点已配置免密登录

配置策略说明

针对不同训练产品,NPU网口的IP网段配置策略有所不同。

产品型号

配置策略说明

Atlas 800T A2 训练服务器

Atlas 900 A2 PoD 集群基础单元

  • 每台训练节点的8个NPU网口IP地址使用同一网段
  • 如8个NPU网口统一使用10.20.0.x。

Atlas 800 训练服务器(型号:9000)

Atlas 800 训练服务器(型号:9010)

Atlas 900 PoD(型号:9000)

Atlas 900T PoD Lite

  • 每台训练节点上的8个NPU网口需要规划4个IP网段
  • NPU0和NPU4为同一网段,同理NPU1和NPU5、NPU2和NPU6、NPU3和NPU7为同一网段。

操作步骤

  1. 进入ascend-deployer/ascend_deployer,修改inventory_file文件的hccn变量配置区域并保存。示例如下。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    [hccn]
    xx.xx.xx.xx ansible_ssh_user="root" deviceip=xx.xx.xx.xx,xx.xx.xx.xx detectip=xx.xx.xx.xx,xx.xx.xx.xx //此处依次填写训练节点业务IP地址远程登录用户账号NPU网口IP地址每台节点配置一行
    xx.xx.xx.xx ansible_ssh_user="root" deviceip=xx.xx.xx.xx,xx.xx.xx.xx detectip=xx.xx.xx.xx,xx.xx.xx.xx
    [hccn:vars]
    gateways="xx.xx.xx.xx"
    netmask="255.255.255.0"
    roce_port=4791
    bitmap="0,0,0,1,0,0,0,0"
    dscp_tc="xx:x,"
    common_network=""
    
    表1 hccn 变量配置参数说明

    字段

    是否可选

    说明

    IP

    必选

    ansible_ssh_user字段前的xx.xx.xx.xx需填写训练节点的业务IP地址,用于SSH远程登录。

    ansible_ssh_user

    必选

    SSH远程训练节点的账号,需配置为“root”。

    deviceip

    必选

    配置每个NPU网口IP,如一台训练节点的8个NPU网口填写示例如下(从NPU0至NPU7):

    IPv4:

    10.20.0.2,10.20.0.3,10.20.0.4,10.20.0.5,10.20.0.6,10.20.0.7,10.20.0.8,10.20.0.9(逗号必须为英文)。

    IPv6:

    2001:0db8:85a3::8a2e:0370:7330,2001:0db8:85a3::8a2e:0370:7331,2001:0db8:85a3::8a2e:0370:7332,2001:0db8:85a3::8a2e:0374:7333,2001:0db8:85a3::8a2e:0370:7334,2001:0db8:85a3::8a2e:0370:7335,2001:0db8:85a3::8a2e:0370:7336,2001:0db8:85a3::8a2e:0370:7337(逗号必须为英文)。

    Atlas 800T A2 训练服务器Atlas 900 A2 PoD 集群基础单元Atlas 200T A2 Box16 异构子框支持IPv6;IPv4和IPv6不能混合使用。

    detectip

    必选

    配置每个NPU网口的网络检测对象IP。该功能主要用于检测网络状态,可将检测对象IP配置为网段内的网关地址,训练节点会定时检测NPU网口和网关地址通信是否正常,如一台训练节点的8个NPU网口填写示例如下(从NPU0至NPU7):

    IPv4:

    10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1(逗号必须为英文)。

    IPv6:

    2001:0db8:85a3::8a2e:0370:7330,2001:0db8:85a3::8a2e:0370:7331,2001:0db8:85a3::8a2e:0370:7332,2001:0db8:85a3::8a2e:0374:7333,2001:0db8:85a3::8a2e:0370:7334,2001:0db8:85a3::8a2e:0370:7335,2001:0db8:85a3::8a2e:0370:7336,2001:0db8:85a3::8a2e:0370:7337(逗号必须为英文)。

    Atlas 800T A2 训练服务器Atlas 900 A2 PoD 集群基础单元Atlas 200T A2 Box16 异构子框支持IPv6;IPv4和IPv6不能混合使用。

    gateways

    必选

    配置网关,因需要网关转发报文,配置时要保证网关真实可用。

    配置示例:

    IPv4:10.20.0.1。

    IPv6:2001:0db8:85a3::8a2e:0370:1。

    如果NPU网口组网内存在多个网关地址,需要填写多个,如:

    IPv4:10.20.0.1,10.20.1.1(逗号必须为英文)。

    IPv6:2001:0db8:85a3::8a2e:0370:1,2001:0db8:85a3::8a2e:0371:1(逗号必须为英文)。

    netmask

    必选

    子网掩码,如IPv4:255.255.255.0;IPv6:64。子网掩码只支持填写一个,所有训练节点的NPU网口IP的子网掩码需保持一致。

    roce_port

    -

    预留端口,无需修改配置。

    bitmap

    可选

    PFC优先级队列使能配置。NPU参数面网口默认使能优先级队列4的PFC,建议现场交换机PFC配置策略和NPU网口保持一致。

    如果现场保留NPU参数面网口默认配置(优先级队列4),则填写空值。

    如果现场交换机PFC配置为其他值且不能修改,则NPU网口需要做对应的配置,组网内所有训练服务器的NPU网口的PFC策略需保持一致。

    “bitmap”参数的字符串的每个bit位对应一个优先级队列,共有8个优先级队列,对应位为1表示使能PFC,0表示不使能,从左到右,第一个bit代表优先级队列0的配置,依次类推。如填写0,0,0,1,0,0,0,0表示使能NPU网口优先级队列3的PFC功能。

    如果需要了解PFC的配置原理请参见Ascend Training Solution 24.0.0 组网指南(Atlas A2训练产品)》中的“参数面网络配置示例”>“网络配置说明”>“拥塞控制与纠错配置策略”(可在Ascend Training Solution选择您使用的服务器类型相关文档进行查看)。

    dscp_tc

    可选

    指定DSCP与TC的映射属性,填写格式:DSCP值:TC值,

    注意TC值后面需加一个英文逗号。

    当前NPU参数面网口默认将DSCP 33映射到优先级队列4(对应TC2),建议现场交换机映射关系配置策略和NPU网口保持一致。

    如果现场保留NPU参数面网口默认配置(DSCP 33映射TC2),则填写空值。

    如果现场交换机映射关系为其他值且不能修改,则NPU网口需要做对应的配置。

    优先级队列和TC对应关系如下:

    ● 优先级队列0/1/2对应TC3

    ● 优先级队列3/4对应TC2

    ● 优先级队列5对应TC1

    ● 优先级队列6/7对应TC0

    由于是统一配置,因此组网内所有训练服务器的NPU网口的PFC策略需保持一致。

    如果需要了解DSCP和TC的配置原理请参见Ascend Training Solution 24.0.0 组网指南(Atlas A2训练产品)》中的“参数面网络配置示例”>“网络配置说明”>“拥塞控制与纠错配置策略”(可在Ascend Training Solution选择您使用的服务器类型相关文档进行查看)。

    common_network

    -

    当产品为Atlas 800T A2 训练服务器Atlas 900 A2 PoD 集群基础单元Atlas 200T A2 Box16 异构子框时:保留空值或填写"0.0.0.0/0"。

    当产品为Atlas 800 训练服务器(型号:9000)Atlas 800 训练服务器(型号:9010)Atlas 900 PoD(型号:9000)Atlas 900T PoD Lite时:填写"0.0.0.0/0"。

    以下为配置参数中涉及的概念解释:

    • PFC (Priority-based Flow Control):是以太网协议的一种基于优先级的流控机制,当某个端口的接收缓存出现拥塞时,会向对端发送反压报文,对端暂停发送对应优先级队列的报文。
    • DSCP (Differentiated Services Code Point):IP报文头部用来划分服务类型和服务优先级的一个域,取值范围是0~63。
    • 优先级队列:交换机和网卡内部实现的QoS队列,包含0~7的8个优先级队列。
    • TC (Traffic Class):网络设备将报文区分为不同的服务类别,采用对应的调度策略。一般交换机将报文分成0~7的8个TC,与优先级队列一一对应。NPU参数面网口将报文分成0~3的4个TC。
    • 当产品为Atlas 800T A2 训练服务器Atlas 900 A2 PoD 集群基础单元Atlas 200T A2 Box16 异构子框时示例如下。

      以下以2台训练节点(每台节点8个NPU网口IP同网段)接入两台交换机(每台交换机接两台节点),每台交换机使用一个网段(对应两个网关地址),PFC优先级队列为3,DSCP25映射到TC2为例展示配置示例:

      • IPv4:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        [hccn]
        192.168.10.2 ansible_ssh_user="root" deviceip=10.20.0.2,10.20.0.3,10.20.0.4,10.20.0.5,10.20.0.6,10.20.0.7,10.20.0.8,10.20.0.9 detectip=10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1
        192.168.10.3 ansible_ssh_user="root" deviceip=10.20.0.10,10.20.0.11,10.20.0.12,10.20.0.13,10.20.0.14,10.20.0.15,10.20.0.16,10.20.0.17 detectip=10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1
        [hccn:vars]
        gateways="10.20.0.1,10.20.1.1"
        netmask="255.255.255.0"
        roce_port=
        bitmap="0,0,0,1,0,0,0,0"
        dscp_tc="25:2,"
        common_network=""
        
      • IPv6
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        [hccn]
        3fff:0050:4400::222 ansible_ssh_user="root" deviceip=2001:0db8:85a3::8a2e:0370:7330,2001:0db8:85a3::8a2e:0370:7331,2001:0db8:85a3::8a2e:0370:7332,2001:0db8:85a3::8a2e:0374:7333,2001:0db8:85a3::8a2e:0370:7334,2001:0db8:85a3::8a2e:0370:7335,2001:0db8:85a3::8a2e:0370:7336,2001:0db8:85a3::8a2e:0370:7337 detectip=2001:0db8:85a3::8a2e:0370:7340,2001:0db8:85a3::8a2e:0370:7341,2001:0db8:85a3::8a2e:0370:7342,2001:0db8:85a3::8a2e:0374:7343,2001:0db8:85a3::8a2e:0370:7344,2001:0db8:85a3::8a2e:0370:7345,2001:0db8:85a3::8a2e:0370:7346,2001:0db8:85a3::8a2e:0370:7347
        3fff:0050:4400::220 ansible_ssh_user="root" deviceip=2001:0db8:85a3::8a2e:0370:7340,2001:0db8:85a3::8a2e:0370:7341,2001:0db8:85a3::8a2e:0370:7342,2001:0db8:85a3::8a2e:0374:7343,2001:0db8:85a3::8a2e:0370:7344,2001:0db8:85a3::8a2e:0370:7345,2001:0db8:85a3::8a2e:0370:7346,2001:0db8:85a3::8a2e:0370:7347 detectip=2001:0db8:85a3::8a2e:0370:7330,2001:0db8:85a3::8a2e:0370:7331,2001:0db8:85a3::8a2e:0370:7332,2001:0db8:85a3::8a2e:0374:7333,2001:0db8:85a3::8a2e:0370:7334,2001:0db8:85a3::8a2e:0370:7335,2001:0db8:85a3::8a2e:0370:7336,2001:0db8:85a3::8a2e:0370:7337
        [hccn:vars]
        gateways="2001:0db8:85a3::8a2e:0370:1"
        netmask="64"
        roce_port=4791
        bitmap=""
        dscp_tc=""
        common_network=""
        [other_build_image]
        [all:vars]
        SCALE="false"
        
    • 当产品为Atlas 800 训练服务器(型号:9000)、Atlas 800 训练服务器(型号:9010)、Atlas 900 PoD、Atlas 900T PoD Lite时示例如下。

      以下以2台训练节点,每台节点NPU网口IP地址为4个网段(对应4个网关地址),PFC优先级队列为3,DSCP25映射到TC2为例展示配置示例:

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      [hccn]
      192.168.10.2 ansible_ssh_user="root" deviceip=10.20.1.2,10.20.2.3,10.20.3.4,10.20.4.5,10.20.1.6,10.20.2.7,10.20.3.8,10.20.4.9 detectip=10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1,10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1
      192.168.10.3 ansible_ssh_user="root" deviceip=10.20.1.10,10.20.2.11,10.20.3.12,10.20.4.13,10.20.1.14,10.20.2.15,10.20.3.16,10.20.4.17 detectip=10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1,10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1
      [hccn:vars] 
      gateways="10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1" 
      netmask="255.255.255.0" 
      roce_port=
      bitmap="0,0,0,1,0,0,0,0" 
      dscp_tc="25:2," 
      common_network="0.0.0.0/0"
      
  2. 执行脚本对inventory_file进行检测。

    方式一:执行ascend-deployer.py文件,进行检测。

    1
    ascend-deployer --hccn --check
    
    方式二:通过bash执行检测命令。
    1
    bash install.sh --hccn --check
    
  3. 执行脚本完成配置。执行脚本时会默认在当前环境上安装ansible,若已安装ansible,则会跳过安装。
    • 方式一:执行ascend-deployer.py文件,调用hccn参数。
      1
      ascend-deployer --hccn
      
    • 方式二:执行hccn脚本。
      1
      bash install.sh --hccn