通过该方式配置device的网卡IP时,需要确保Ascend Deployer工具所在设备上,并存在Ascend Deployer执行下载操作后的resources/pylibs目录。
为实现后续分布式训练时各训练节点上模型的参数同步,需要为每台训练节点的NPU网口配置参数面网络。本章节仅提供批量配置训练节点NPU网口网络信息的方法,对应的交换机配置和参数面网络介绍请参见《Ascend Training Solution 24.0.RC1 组网指南》“参数面网络配置示例">"配置示例(选择对应的产品)">"配置Leaf交换机”。
针对不同训练产品,NPU网口的IP网段配置策略有所不同:
● 当产品为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为同一网段。
[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=""
字段 |
是否可选 |
说明 |
---|---|---|
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: fec0:0090:1c02::3101,fec0:0090:1c02::3102,fec0:0090:1c02::3103,fec0:0090:1c02::3104,fec0:0090:1c02::3105,fec0:0090:1c02::3106,fec0:0090:1c02::3107,fec0:0090:1c02::3108(逗号必须为英文)。 |
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: fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001(逗号必须为英文)。 |
gateways |
必选 |
配置网关,因需要网关转发报文,配置时要保证网关真实可用。 配置示例: IPv4:10.20.0.1。 IPv6:fec0:0090:1c02::2001。 如果NPU网口组网内存在多个网关地址,需要填写多个,如: IPv4:10.20.0.1,10.20.1.1(逗号必须为英文)。 IPv6:fec0:0090:1c02::2001,fec0:0090:1c03::2001(逗号必须为英文)。 |
netmask |
必选 |
子网掩码,如IPv4:255.255.255.0;IPv6:112。子网掩码只支持填写一个,所有训练节点的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.RC1 组网指南》“参数面网络配置示例"> "网络配置说明" > "拥塞控制与纠错配置策略”。 |
dscp_tc |
可选 |
指定DSCP与TC的映射属性,填写格式:DCSP值: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.RC1 组网指南》“参数面网络配置示例"> "网络配置说明" > "拥塞控制与纠错配置策略”。 |
common _network |
- |
当产品为Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框时:保留空值。 当产品为Atlas 800 训练服务器(型号:9000)、Atlas 800 训练服务器(型号:9010)、Atlas 900 PoD(型号:9000)、Atlas 900T PoD Lite时:填写"0.0.0.0/0"。 |
以下为配置参数中涉及的概念解释:
● DSCP (Differentiated Services Code Point):IP报文头部用来划分服务类型和服务优先级的一个域,取值范围是0~63。
● 优先级队列:交换机和网卡内部实现的QoS队列,包含0~7的8个优先级队列。
● TC (Traffic Class):网络设备将报文区分为不同的服务类别,采用对应的调度策略。一般交换机将报文分成0~7的8个TC,与优先级队列一一对应。NPU参数面网口将报文分成0~3的4个TC。
以下以4台训练节点(每台节点8个NPU网口IP同网段)接入两台交换机(每台交换机接两台节点),每台交换机使用一个网段(对应两个网关地址),PFC优先级队列为3,DSCP25映射到TC2为例展示配置示例:
[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 192.168.10.4 ansible_ssh_user="root" deviceip=10.20.1.2,10.20.1.3,10.20.1.4,10.20.1.5,10.20.1.6,10.20.1.7,10.20.1.8,10.20.1.9 detectip=10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1 192.168.10.5 ansible_ssh_user="root" deviceip=10.20.1.10,10.20.1.11,10.20.1.12,10.20.1.13,10.20.1.14,10.20.1.15,10.20.1.16,10.20.1.17 detectip=10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.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=""
[hccn] FEC0:3::180 ansible_ssh_user="root" deviceip=fec0:0090:1c02::3101,fec0:0090:1c02::3102,fec0:0090:1c02::3103,fec0:0090:1c02::3104,fec0:0090:1c02::3105,fec0:0090:1c02::3106,fec0:0090:1c02::3107,fec0:0090:1c02::3108 detectip=fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001 FEC0:3::181 ansible_ssh_user="root" deviceip=fec0:0090:1c02::3109,fec0:0090:1c02::3110,fec0:0090:1c02::3111,fec0:0090:1c02::3112,fec0:0090:1c02::3113,fec0:0090:1c02::3114,fec0:0090:1c02::3115,fec0:0090:1c02::3116 detectip=fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001 FEC0:3::182 ansible_ssh_user="root" deviceip=fec0:0090:1c03::3101,fec0:0090:1c03::3102,fec0:0090:1c03::3103,fec0:0090:1c03::3104,fec0:0090:1c03::3105,fec0:0090:1c03::3106,fec0:0090:1c03::3107,fec0:0090:1c03::3108 detectip=fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001 FEC0:3::183 ansible_ssh_user="root" deviceip=fec0:0090:1c03::3109,fec0:0090:1c03::3110,fec0:0090:1c03::3111,fec0:0090:1c03::3112,fec0:0090:1c03::3113,fec0:0090:1c03::3114,fec0:0090:1c03::3115,fec0:0090:1c03::3116 detectip=fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001 [hccn:vars] gateways="fec0:0090:1c02::2001,fec0:0090:1c03::2001" netmask="112" roce_port= bitmap="0,0,0,1,0,0,0,0" dscp_tc="25:2," common_network=""
以下以2台训练节点,每台节点NPU网口IP地址为4个网段(对应4个网关地址),PFC优先级队列为3,DSCP25映射到TC2为例展示配置示例:
[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"
ascend-deployer --hccn
bash install.sh --hccn