昇腾社区首页
中文
注册

自定义打流

测试项功能

自定义打流是将一键式打流中的各步骤独立出来,用户可灵活控制打流的TX、RX方向开关和指定打流的具体lane。

测试项名称

支持的打流方式

使用方法

自定义打流

CDR环回打流、光模块外接光纤回路器(自环器)打流、NPU直连打流

自定义打流是将一键式打流中的各步骤独立出来,用户可灵活控制打流的TX、RX方向开关和指定打流的具体lane。

一键式打流

CDR环回打流、光模块外接光纤回路器(自环器)打流

执行一键式打流命令,Ascend DMI工具将自动完成发送及接收指定device所有lane的码流,一段时间后关闭码流并查询结果。

测试原理

自定义流支持以下3种打流方式(NPU外部环回场景,包括CDR环回打流和外接光纤回路器打流,也支持两个NPU通过铜缆或者光纤直连的场景)。

  • CDR环回打流:是指单个Device同时发送和接收,可用于检查从NPU的物理serdes端口到CDR单元的信号质量。在打流前,请确保光模块在位,然后再进行CDR环回配置。执行如下命令配置或解除CDR回环,其余参数说明请参考《Atlas A2 中心推理和训练硬件 24.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息”章节
    • 配置CDR回环,t取值顺序为3、0,例如依次执行如下命令:

      hccn_tool -i 0 -scdr -t 3

      hccn_tool -i 0 -scdr -t 0

    • 解除CDR回环,t取值顺序为2、1,例如依次执行如下命令:

      hccn_tool -i 0 -scdr -t 2

      hccn_tool -i 0 -scdr -t 1

  • 光模块外接光纤回路器(自环器)打流:单个Device同时发送和接收,可用于检查NPU的物理serdes端口到光模块的信号质量,不需要设置环回。
    图1 NPU外部环回示意图
  • NPU直连打流:NPU A的Serdes端口开启TX方向打流后,数据流通过被测链路到达NPU B的Serdes端口,NPU B的RX方向按照码型比对,统计接收到的数据统计误码情况,可检查两个NPU之间链路的信号质量。
    图2 NPU直连打流示意图
    • 外部环回场景:需要确保先开启TX方向,再开启RX方向。
    • NPU直连场景:测试A发B收时,需要确保先开启TXA方向,再开启TXB方向;测试B发A收时,需要确保先开启TXB方向,再开启RXA方向,否则结果会出现满误码。
    • 同一个Device的不同lane在打流期间的操作需要一致,否则NPU和CDR重新自适应会影响打流结果;比如lane 0打流期间再开关其他lane,可能会导致lane 0满误码。

使用约束

  • 该测试项当前仅支持root用户在Atlas 800T A2 训练服务器Atlas 200T A2 Box16 异构子框Atlas 800I A2推理产品上使用。
  • 当前仅支持在物理机、容器、虚拟机上执行该项测试。
  • 该操作为高危操作,可能会导致网口link down,需要单独执行。

测试前准备

  • 打流会中断训练或推理业务,打流前请确保无业务运行。
  • 如果使用外接光纤回路器或者两个NPU直连的场景,打流前无需额外配置;如果使用CDR环回,请确保光模块在位然后配置CDR环回。CDR配置环回方法请参考《Atlas A2 中心推理和训练硬件 24.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息”章节
  • 为了避免频繁输出日志影响测试结果,测试前确认Host和Device的日志级别设置为ERROR,确认及设置方法如下:
    1. 确认日志级别:
      • Host侧:通过执行echo $GLOBAL_LOG_LEVEL命令查询,如果查询结果为非法值或者空,表示日志级别为缺省级别ERROR,对应数值3。
      • Device侧:请参考msnpureport工具使用,查看全局日志级别、模块日志级别和是否开启Event日志。
    2. 如果日志级别不为ERROR,请参考《CANN 日志参考》中“设置日志级别”章节章节,设置Host和Device侧的日志级别。

支持的场景

码流测试支持的设备及场景如表1 支持的场景和产品型号所示。(在下表中,Y表示支持,N表示不支持。)

表1 支持的场景和产品型号

场景/产品型号

Atlas A2 训练系列产品

Atlas 800I A2 推理产品

物理机

1

Y

宿主机+容器

1

Y

虚拟机

1

N

  1. Atlas 800T A2 训练服务器Atlas 200T A2 Box16 异构子框支持。

测试项参数查询

用户可任选以下指令之一查看码流测试命令的可用参数。

ascend-dmi --prbs-check -h

ascend-dmi --prbs-check --help

各参数解释如表1所示。

在打流前,必须先执行--clear命令清除当前Device寄存器保留的历史信息。

表2 参数说明

参数

说明

是否必填

[-pc, --pc, --prbs-check]

使用该参数进行prbs码流测试。

[-d, --device]

指定需要进行码流测试的Device ID。

  • Device ID是指昇腾AI处理器的逻辑ID,若不填写则测试全量昇腾NPU芯片的码流。
  • 可同时指定多个Device ID,多个之间用逗号隔开。

[--prbs-mode]

是否切换打流状态。

--取值为EN(Enable):开启。

--取值为DS(Disable):关闭。

  • 取值支持大小写。
  • 指定--prbs-mode为EN或DS时,信号发送端和信号接收端两个方向均会生效,无论是否指定--generator-pattern,--generator-lanes,--checker-pattern,--checker-lanes参数。
  • 指定--prbs-mode为EN时,支持指定-generator-pattern、--checker-pattern、--generator-lanes、--checker-lanes。
  • 指定--prbs-mode为DS时,停止打流。不支持指定-generator-pattern、--checker-pattern、--generator-lanes、--checker-lanes。
  • 本参数不支持与--show参数或--clear参数同时指定。

[--generator-pattern]

指定发送端的码流类型。

  • 当前支持测试的码流类型为:prbs7、prbs9、prbs10、prbs11、prbs15、prbs20、prbs23、prbs31。
  • 不指定该参数时,默认值为prbs31。
  • 指定码型时大小写均可生效,例如prbs7也可以写为PRBS7。
  • 本参数不支持与--show参数或--clear参数同时指定。

[--generator-lanes]

指定发送端的lane。

  • 可同时指定1个或多个lane,多个之间用逗号分开。指定多个lane时必须连续指定,如0,1,2或2,1,3,不支持非连续指定。
  • 若不指定,则默认测试所有lanes。
  • 本参数不支持与--show参数或--clear参数同时指定。
  • 可取值为0、1、2、3。

[--checker-pattern]

指定接受端的码流类型。

  • 当前支持校验的码流类型为:prbs7、prbs9、prbs10、prbs11、prbs15、prbs20、prbs23、prbs31。
  • 不指定该参数时,默认值为prbs31。
  • 指定码型时大小写均可生效,例如prbs7也可以写为PRBS7。
  • 本参数不支持与--show参数或--clear参数同时指定。

[--checker-lanes]

指定接收端的lane。

  • 可同时指定1个或多个lane,多个之间用逗号分开。指定多个lane时必须连续指定,如0,1,2或2,1,3,不支持非连续指定。
  • 若不指定,则默认测试所有lanes。
  • 本参数不支持与--show参数或--clear参数同时指定。
  • 可取值为0、1、2、3。

[-show, --show, --show-diagnostic-info]

展示码流测试的结果。

  • 本参数不支持与以下参数同时指定:--clear、--prbs-mode、--generator-pattern、--generator-lanes、--checker-pattern、--checker-lanes。
  • 展示信息后当前码流测试的结果即会被清空。

[-clear, --clear, --clear-diagnostic-info]

清空码流测试的结果信息。

  • 本参数不支持与以下参数同时指定:--show、--prbs-mode、--generator-pattern、--generator-lanes、--checker-pattern、--checker-lanes。
  • 支持除以上参数外的其余参数同时指定。

[-fmt, --fmt, --format]

指定输出格式,可以为normal或json。若未指定则默认为normal。

[-h, --help]

显示帮助信息。

[-q, --quiet]

指定该参数,将不再进行防呆提示,用户将默认允许该操作。

若不指定该参数,将进行防呆提示,用户需要输入Y或N(y或n)确认是否进行测试。

使用实例

执行自定义打流时,请按照图3进行操作。

图3 码流测试流程图
  • 以使用默认值进行码流测试为例。
    1
    2
    ascend-dmi -pc --clear  -q    
    ascend-dmi -pc --prbs-mode EN -q
    

    命令含义:在所有device上开启码流测试,发送端为4条lane、码型为PRBS31;接收端为4条lane、码型为PRBS31。

    图4 使用默认值进行码流测试
  • 以在Device8上开启码流测试为例,发送端为lane0和lane1,码型为prbs20;接收端为4条lane、码型为prbs31。
    1
    2
    ascend-dmi -pc --clear --device 8 -q    
    ascend-dmi -pc --prbs-mode EN -q --device 8 --generator-pattern prbs20 --generator-lanes 0,1
    
    图5 指定发送端lane示例
  • 关闭打流示例。

    ascend-dmi -pc --prbs-mode DS -d 8,9 -q

    此命令会关闭device 8和9上,4条lane上,TX和RX方向上的打流。

  • 清空打流结果示例。

    ascend-dmi -pc --clear-diagnostic-info -d 8,9 -q

    此命令会清空device 8和9上记录的误码数据。

在以上示例中,各回显参数的说明如表2 回显参数说明所示:

表3 回显参数说明

参数

说明

Lane

对应RoCE链路的lane id。

Check Enable

接收端的check状态。

0:关闭

1:开启

Pattern

RX方向check的码型。

Error-Bits

误码数,上限为67092480(满误码)。

Bit-Error Rate(BER)

误码率,误码数÷总传输bit数×100%。

ALOS

正常打流时需要为0,为1通常表示信号幅度过低;

未打流时无意义无需关注。

Period

距离上一次操作控制打流/读取check结果的时间。

以下几种情况可能导致满误码(误码数为67092480):

  • 未使用--clear清空寄存器即进行码流测试。
  • 发送方向和接受方向指定的码型不一致。
  • 开关顺序问题:先开启了RX,后开启TX。
  • 打流流程会自动关闭NPU和CDR自适应,多次执行打流命令时会反复开关自适应,当自适应开关动作未完成时,偶现误码数为67092480。
  • CDR环回场景下,未配置CDR环回,详细配置步骤请参见《Atlas A2 中心推理和训练硬件 24.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息”章节

后续操作

  • 为避免对正在运行的训练或推理业务造成影响,请在完成码流测试后,关闭该测试项。
  • 若使用CDR环回打流,请在完成打流后解除CDR环回,否则业务无法正常运行。解除CDR环回请参见《Atlas A2 中心推理和训练硬件 24.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息”章节