---
title: 自定义打流
description: "- 昇腾950PR&950DT系列产品：自定义打流是将一键式打流中的各步骤独立出来，用户可灵活控制打流的TX、RX方向开关。"
url: https://www.hiascend.com/document/detail/zh/mindcluster/latest/toolbox/toolboxug/toolboxug_0169.html
sourcePath: /source/zh/mindcluster/2610/toolbox/toolboxug/toolboxug_0169.html
indexId: bc67b544c90da35f96aa3b31b8c7e2ad07962aa66fbe37d08ef59f88f1a02e5565
---
# 自定义打流

#### 测试项功能

- 昇腾950PR&950DT系列产品：自定义打流是将一键式打流中的各步骤独立出来，用户可灵活控制打流的TX、RX方向开关。
- 其他产品：自定义打流是将一键式打流中的各步骤独立出来，用户可灵活控制打流的TX、RX方向开关和指定打流的具体lane。


#### 测试原理

自定义打流支持以下3种打流方式。

- NPU外部环回场景：

  - CDR环回打流：请参见    测试原理
。昇腾950PR&950DT系列产品不支持CDR环回打流。
  - 光模块外接光纤回路器（自环器）打流：请参见    测试原理
。
- NPU直连打流：NPU A的Serdes端口开启TX方向打流后，数据流通过被测链路到达NPU B的Serdes端口，NPU B的RX方向按照码型比对，统计接收到的数据误码情况，可检查两个NPU之间链路的信号质量。
  图1 NPU直连打流示意图

  外部环回场景：需要确保先开启TX方向，再开启RX方向。 NPU直连场景：测试A发B收时，需要确保先开启TXA方向，再开启RXB方向；测试B发A收时，需要确保先开启TXB方向，再开启RXA方向，否则结果会出现满误码。 同一个Device的不同lane在打流期间的操作需要一致，否则NPU和CDR重新自适应会影响打流结果；比如lane 0打流期间再开关其他lane，可能会导致lane 0满误码。


#### 测试前准备

- 打流会中断训练或推理业务，打流前请确保无业务运行。
- 如果使用外接光纤回路器或者两个NPU直连的场景，打流前无需额外配置。
- 对于除了昇腾950PR&950DT系列产品之外的产品，如果使用CDR环回，请确保光模块在位并配置CDR环回。CDR配置环回方法请参考《Atlas A2 中心推理和训练硬件 26.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息(https://support.huawei.com/enterprise/zh/doc/EDOC1100591765/7a0e08fc?idPath=23710424|251366513|254884019|261408772|252764743)”章节。


#### 测试项特定参数查询

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

ascend-dmi --prbs-check -h

ascend-dmi --prbs-check --help

各参数解释如表1所示，表格内仅展示测试项特定参数，其余公共参数请参见公共参数说明。

- 在打流前，必须先执行--clear命令清除当前Device寄存器保留的历史信息。
- 对于昇腾950PR&950DT系列产品，如果连续执行多次打流，命令执行需要间隔15s以上。


**表1 参数说明**

| 参数 | 说明 | 约束 | 是否必填 |
| --- | --- | --- | --- |
| [\-pc, \-\-pc, \-\-prbs\-check] | 使用该参数进行PRBS码流测试。 | \- | 是 |
| [\-\-prbs\-mode] | 是否切换打流状态。 \-\-取值为EN（Enable）：开启。 \-\-取值为DS（Disable）：关闭。 取值支持大小写。 指定\-\-prbs\-mode为EN或DS时，信号发送端和信号接收端两个方向均会生效，无论是否指定\-\-generator\-lanes,\-\-checker\-lanes参数。 指定\-\-prbs\-mode为EN时，支持指定\-\-generator\-lanes、\-\-checker\-lanes。 指定\-\-prbs\-mode为DS时，停止打流。不支持指定\-\-generator\-lanes、\-\-checker\-lanes。 本参数不支持与\-\-show参数或\-\-clear参数同时指定。 | 昇腾950PR&950DT系列产品不支持使用该参数。 | 是 |
| [\-\-generator\-lanes] | 指定发送端的lane。 可同时指定1个或多个lane，多个之间用逗号分开。指定多个lane时必须连续指定，如0,1,2。不支持非连续指定，如0,1,3。 若不指定，则默认测试所有lanes。 本参数不支持与\-\-show参数或\-\-clear参数同时指定。 可取值为0、1、2、3。 | 昇腾950PR&950DT系列产品不支持使用该参数。 | 否 |
| [\-\-checker\-lanes] | 指定接收端的lane。 可同时指定1个或多个lane，多个之间用逗号分开。指定多个lane时必须连续指定，如0,1,2。不支持非连续指定，如0,1,3。 若不指定，则默认测试所有lanes。 本参数不支持与\-\-show参数或\-\-clear参数同时指定。 可取值为0、1、2、3。 | 昇腾950PR&950DT系列产品不支持使用该参数。 | 否 |
| [\-show, \-\-show, \-\-show\-diagnostic\-info] | 展示码流测试的结果。 本参数不支持与以下参数同时指定：\-\-clear、\-\-prbs\-mode、\-\-generator\-lanes、\-\-checker\-lanes。 展示信息后当前码流测试的结果即会被清空。 | 昇腾950PR&950DT系列产品不支持使用该参数。 | 否 |
| [\-clear, \-\-clear, \-\-clear\-diagnostic\-info] | 清空码流测试的结果信息。 本参数不支持与以下参数同时指定：\-\-show、\-\-prbs\-mode、\-\-generator\-lanes、\-\-checker\-lanes。 支持除以上参数外的其余参数同时指定。 | 昇腾950PR&950DT系列产品不支持使用该参数。 | 否 |
| [\-dur, \-\-dur, \-\-duration] | 指定码流测试的时长。 参数取值范围为[3, 10]，单位为秒。 不指定该参数时，默认值为3。 | 仅昇腾950PR&950DT系列产品支持使用此参数 | 否 |
| [\-ds, \-\-ds, \-\-device\-src] | 指定码流测试的源头Device的ID号。不能与[\-dd, \-\-dd, \-\-device\-dst]参数成对指定。 | 仅昇腾950PR&950DT系列产品支持使用此参数 | 否 |
| [\-dd, \-\-dd, \-\-device\-dst] | 指定码流测试的目标Device的ID号。不能与[\-ds, \-\-ds, \-\-device\-src]参数成对指定。 | 仅昇腾950PR&950DT系列产品支持使用此参数 | 否 |
| [\-lt, \-\-lt, \-\-link\-type] | 指定端口对应的链路类型。自定义打流仅支持参数值为“uboe”，表示UBoE（Unified Bus over Ethernet）链路。 | 仅昇腾950PR&950DT系列产品支持使用此参数 | 是 |


#### 使用示例（昇腾950PR&950DT系列产品）

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

图2 昇腾950PR&950DT系列产品码流测试流程图

以在Device0上进行码流测试为例。

首先执行以下命令，在Device 0上开启TX码流测试，发送端为4条lane、码型为PRBS31。

```
[***@***]# ascend-dmi -pc -ds 0 -lt uboe -q
TX enabled on device 0, waiting for 13s.
TX disabled on device 0
```

然后单独开启一个会话窗口，再执行以下命令，在Device 0上开启RX码流测试，接收端为4条lane、码型为PRBS31。

```
[***@***]# ascend-dmi -pc -dd 0 -lt uboe -q
PRBS31 on device 0:
----------------------------------------------------------------------------------------------------
lane                error count         error rate          alos                time(ms)
----------------------------------------------------------------------------------------------------
0                   1                   0.0000000003%       0                   3000
1                   1                   0.0000000003%       0                   3000
2                   35                  0.0000000104%       0                   3000
3                   2                   0.0000000006%       0                   3000
----------------------------------------------------------------------------------------------------
```

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


**表2 回显参数说明**

| 参数 | 说明 |
| --- | --- |
| device | 表示NPU的逻辑ID。 |
| lane | 表示端口的lane通道ID。 |
| error count | 误码数。 最大值为67108863，表示满误码。 |
| error rate | 误码率。 当误码率小于10\-5时，表示信号质量正常。 |
| alos | 取值为：0、1。 值为0表示正常 值为1通常表示输入信号幅度过低。 |
| time(ms) | 表示打流时长。 |
| 以下几种情况可能导致满误码（误码数为67108863）： 开关顺序问题：先开启了RX，后开启TX。 未配置环回。 | 以下几种情况可能导致满误码（误码数为67108863）： 开关顺序问题：先开启了RX，后开启TX。 未配置环回。 |


#### 使用示例（其他产品）

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

图3 其他产品码流测试流程图

- 以使用默认值进行码流测试为例。

```
ascend-dmi -pc --clear  -q
ascend-dmi -pc --prbs-mode EN -q
```


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

  图4 使用默认值进行码流测试


- 以在Device8上开启码流测试为例，发送端为lane0和lane1；接收端为4条lane。

```
[***@***]# ascend-dmi -pc --clear --device 8 -q
Operation succeeded.
[***@***]# ascend-dmi -pc --prbs-mode EN -q --device 8 --generator-lanes 0,1
Operation succeeded.
[***@***]# ascend-dmi --pc --show -d 8 -q
Device 8:
-----------------------------------------------------------------------------------------------
Lane      Check Enable    Pattern    Error-Bits     Bit-Error Rate(BER)    ALOS      Period(ms)
----------------------------------------------------------------------------------------------------
0         1               PRBS31     206            0.0000000032%          0         120193
1         1               PRBS31     385            0.0000000060%          0         120187
2         1               PRBS31     67092480       0.0010508065%          0         120186
3         1               PRBS31     67092480       0.0010507844%          0         120189
-----------------------------------------------------------------------------------------------
```


- 关闭打流示例。
  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上记录的误码数据。


在以上示例中，各回显参数的说明如表3所示：


**表3 回显参数说明**

| 参数 | 说明 |
| --- | --- |
| Lane | 对应RoCE链路的lane id。 |
| Check Enable | 接收端的check状态。 0：关闭 1：开启 |
| Pattern | RX方向check的码型。 |
| Error\-Bits | 误码数，上限为67092480（满误码）。 |
| Bit\-Error Rate(BER) | 误码率，误码数÷总传输bit数×100%。 当误码率小于0.001%为信号质量正常。 |
| ALOS | 正常打流时需要为0，为1通常表示信号幅度过低； 未打流时无意义无需关注。 |
| Period | 距离上一次操作控制打流/读取check结果的时间。 |
| 以下几种情况可能导致满误码（误码数为67092480）： 未使用\-\-clear清空寄存器即进行码流测试。 发送方向和接收方向指定的码型不一致。 开关顺序问题：先开启了RX，后开启TX或TX开启完成前，已开启RX。 打流流程会自动关闭NPU和CDR自适应，多次执行打流命令时会反复开关自适应，当自适应开关动作未完成时，偶现误码数为67092480。 CDR环回场景下，未配置CDR环回，详细配置步骤请参见《Atlas A2 中心推理和训练硬件 26.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息(https://support.huawei.com/enterprise/zh/doc/EDOC1100591765/7a0e08fc?idPath=23710424\|251366513\|254884019\|261408772\|252764743)”章节。 | 以下几种情况可能导致满误码（误码数为67092480）： 未使用\-\-clear清空寄存器即进行码流测试。 发送方向和接收方向指定的码型不一致。 开关顺序问题：先开启了RX，后开启TX或TX开启完成前，已开启RX。 打流流程会自动关闭NPU和CDR自适应，多次执行打流命令时会反复开关自适应，当自适应开关动作未完成时，偶现误码数为67092480。 CDR环回场景下，未配置CDR环回，详细配置步骤请参见《Atlas A2 中心推理和训练硬件 26.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息(https://support.huawei.com/enterprise/zh/doc/EDOC1100591765/7a0e08fc?idPath=23710424\|251366513\|254884019\|261408772\|252764743)”章节。 |


#### 后续操作

- 对于昇腾950PR&950DT系列产品，关闭PRBS打流后，需等待15s确认端口UP后才能正常运行业务。
- 对于除了昇腾950PR&950DT系列产品之外的产品，为避免对正在运行的训练或推理业务造成影响，请在完成码流测试后，关闭该测试项。
- 对于除了昇腾950PR&950DT系列产品之外的产品，若使用CDR环回打流，请在完成打流后解除CDR环回，否则业务无法正常运行。解除CDR环回请参见《Atlas A2 中心推理和训练硬件 26.1.0 HCCN Tool 接口参考》的“配置功能>配置和查询CDR相关信息(https://support.huawei.com/enterprise/zh/doc/EDOC1100591765/7a0e08fc?idPath=23710424|251366513|254884019|261408772|252764743)”章节。
