希姆计算stcqual使用说明

版本历史

版本 作者 日期 注释
V1.0 希姆计算 2021-09-10 初始版本.
V1.1.0 希姆计算 2021-12-10 增强pcie带宽测试脚本和眼图工具。
V1.2.0 希姆计算 2022-04-11 配套HPE V1.2.0发布文档。

本文术语

术语 描述
NPU 神经网络处理单元(Neural-network Processing Unit)
NerualScale 北京希姆计算科技有限公司研发的NPU架构
STCP920 北京希姆计算科技有限公司研发的基于NerualScale架构的产品

概述

stcqual用于验证北京希姆计算科技有限公司研发的NPU设备。

准备工作

主机系统要求

Intel/AMD的64位CPU;

不低于2GB大小的系统内存;

不低于4.19版本的Linux内核;

Ubuntu 18.04[推荐];

使用前提条件

推荐用户以root身份使用stcqual,因为stcqual会访问一些系统目录;

在使用stcqual之前,NPU必须处于初始状态,主机上不能运行希姆计算HPE软件程序;

安装工具包

$ sudo apt-get install make
$ sudo apt-get install build-essential

准备内核模块

stcqual工具使用两个内核模块来配合完成不同的测试。PCIE带宽测试使用stcdma.ko,其他测试使用stc.ko。用户可以使用脚本system_prepare.sh来切换这两个内核模块。

  • 切换至stc内核模块:

    $ ./system_prepare.sh 0
    
  • 切换至stcdma内核模块:

    $ ./system_prepare.sh 1
    

注意: 在运行stcqual工具之前,停止任何希姆计算HPE软件程序的运行 在运行stcqual工具之后,安装希姆计算HPE软件包发布的NPU驱动程序,恢复板卡至正常工作状态

运行

用户执行stcqual目录中的stcqual脚本来运行stcqual。 需要注意的是,在pcie带宽测试和其余的测试之间切换时,需要先运行system_prepare.sh脚本来切换相应的内核驱动。

  • stcqual help信息输出

    $ cd stcqual
    $ ./stcqual
    ------------------------------------------------
    stcqual - A qualify toolset for NPU product.
    ------------------------------------------------
    
    option list:
      -h, --help:                Print usage
      -v, --version:             stcqual version info
      -l, --list:                Show list of tests supported by stcqual
      -t, --test:                Specify the test to be run [1-8]. default is 8.
      -p, --pcibus:              Specify the PCI Slot bus ID for the test
      -i, --index:               Specify the NPU ID for the test
          --loops:               Provide number of loops for specified test
    
    ------------------------------------------------
    test list:
    	[1]  PCIe bandwidth test
    	[2]  PCIe eye data test
    	[3]  DDR bandwidth test
    	[4]  Computing power (TOPS) test
    	[5]  AI net performance test
    	[6]  Thermal test
    	[7]  Power test
    	[8]  System Level Test (SLT) - sequence order
    
  • 列出当前主机安装的所有NPU设备

    $./stcqual --list
    
  • 在NPU 0上运行测试项1

    $ ./system_prepare.sh 1
    $ ./stcqual --test 1 --index 0
    
  • 在NPU 0上运行测试项2

    $ ./system_prepare.sh 0
    $ ./stcqual --test 2 --index 0
    
  • 在所有NPU上运行测试项2

    $ ./stcqual --test 2
    
  • 在pci总线地址为 04:00.0 的NPU上运行测试项2

    $ ./stcqual --test 2 --pcibus 04:00.0
    
  • 在pci总线地址为 04:00.0 的NPU上运行测试项2, 循环测试10次

    $ ./stcqual --test 2 --pcibus 04:00.0 --loops 10
    

    注意:在测试程序运行过程中,不要使用ctrl+c强制退出,否则会导致系统不稳定。

分发包的内容

stcqual分发包包含若干目录和文件,具体的目录结构如下: |文件 / 目录 |描述| | - | - | |cases|所有npu单个测试用例都收集在此文件夹中| |driver|支持stcqual 测试的驱动程序npu 驱动程序代码| |result|所有 stcqual 测试结果将记录在此文件夹中| |tools|支持stcqual测试的操作工具| |stcqual|stcqual 工具的入口,用户使用此脚本开始他们想要的测试| |npu.xxx.sh|每个测试集的测试脚本,被stcqual调用,用户不需要关心这些文件|

命令行参数

stcqual支持的命令行选项如下:

参数 描述
-h, --help stcqual使用帮助
-v, --version stcqual版本信息
-l, --list 显示服务器上检测到的NPU列表
-t, --test 指定要运行的测试 [1-9],默认值为 8
-p, --pcibus 为测试指定PCI插槽总线ID
-i, --index 为测试指定NPU ID
--loops 提供测试的循环次数,默认是1
--prod_id 为日志文件名添加产品ID
--cust_time 为日志文件名添加指定的时间戳

测试项描述

从顶层入口,stcqual提供了8个测试选项, 每个测试选项的内容描述如下:

测试编号 测试名称 描述
1 PCI Express bandwidth test PCIe带宽测试使用PCIe DMA发起主机端DDR和DEVICE端DDR的数据传输。通过传输的最大数据量以及传输时间,计算出PCIe总线带宽。
2 PCI Express Data Eye Tool PCIe眼图工具逐个lane打印眼图数据,并根据若干个检测点,汇报输出眼图质量是否满足要求。
3 DDR bandwidth test DDR带宽测试使用NPU内部的sysdma进行DDR与LLB之间的数据传输,根据传输的数据量和传输所耗的clock数计算出DDR的带宽。
4 NPU TOPS Test NPU 算力测试通过运行指定的矩阵运算并查看运算所耗的时间来最终评估NPU的算力。
5 AI Net performance test AI网络性能测试包含 resnet50, resnet50 int8, bert三个网络的测试,通过统计一定时间内NPU所处理的数据元, 折算出各自网络的性能。
6 Thermal Qualification Test 系统热认证测试在NPU上运行一个高功耗用例,后台线程会定期轮询板温,如果检测到温度过高,则会向结果文件报告失败。
7 Power Qualification Test 电源认证测试在后台运行一个高功耗案例,在前台监控电源功耗状况。
8 System Level Test (sequencial) 系统级测试 (SLT) 是 9 个测试用例的组合。该测试涵盖MAC、SDMA、AI NET、DDR压力、IRAM等测试项,全面验证NPU的功能和性能。