希姆计算stc-smi使用说明

版本历史

版本 作者 日期 注释
V1.0 希姆计算 2021-11-01 初始版本
V1.1 希姆计算 2021-11-15 3.4节增加正常工作显示值
V1.2.0 希姆计算 2022-04-11 配套HPE V1.2.0发布文档。

本文术语

术语 描述
NPU 神经网络处理单元(Neural-network Processing Unit)
NerualScale 北京希姆计算科技有限公司研发的NPU架构
STCP920 北京希姆计算科技有限公司研发的基于NerualScale架构的产品
NPC 神经网络处理核(Neural-network Processing Core),STCP920包含32个NPC
NPC Cluster NPC集群,STCP920包含4个集群,每个集群包含8个NPC
全局内存 每个集群私有的低速内存,被集群内NPC共享,STCP920中的大小为4GB

概述

stc-smi(System Management Interface)用来管理和监视北京希姆计算科技有限公司研发的NPU设备。

使用说明

stc-smi选项说明:

  • -h, --help  显示stc-smi使用说明并退出

  • <no arguments>  显示连接到系统的NPU设备的摘要信息

  • --version  显示stc-smi版本信息并退出

  • -l, --list  显示NPU设备列表

  • -q, --query  显示NPU设备的详细信息,可以与以下选项联合使用:
    -i, --id= 指定要操作的NPU设备
    -c, --cluster= 指定要操作的NPC Cluster
    -p, --pci 显示NPU设备PCI信息
    --task 显示正在运行的任务信息

  • --query-npu=  查询NPU设备信息,支持的查询项目如下:
    index 从零开始的NPU设备索引
    name NPU的产品名称
    serial 全球唯一的不可变的字母数字编号,与实际印刷在每块板上的序列号相匹配
    power.draw 整个NPU板的功耗,以瓦特为单位
    temperature.npu NPU核心温度,以摄氏度为单位
    utilization.npu 核函数在NPU上一秒执行的时间百分比
    memory.total NPU全局内存总量
    memory.used 运行任务的上下文分配的全局内存总量
    --format= [强制选项] 逗号分隔的格式选项列表:
      csv - [强制选项] 逗号分隔格式

  • -r, --reset  重置指定的NPU设备
    -i, --id= 指定要操作的NPU设备

命令示例

默认显示

$ stc-smi

+------------------------------------------------------------------------------+
|    STC-SMI: 1.0.0                            Driver Version: 1.0.0           |
+------------------------------------------------------------------------------+
|  NPU        Name      Frequency|         Bus-Id        |                     |
|  Fan        Temp          Power|   ClusterCount        |  Memory Used /Total |
+==============================================================================+
|    0     STCP920          1000M|   0000:01:00.0        |                     |
|  N/A       37.6C   32.8W / 160W|              4        |     625.04M /16.00G |
+------------------------------------------------------------------------------+

+------------------------------------------------------------------------------+
| Processes:                                                                   |
|   NPU CLUSTER           Pid  processName                           MemoryUsed|
+==============================================================================+
|     0       0          8133  hello_world                                1.04M|
+------------------------------------------------------------------------------+
名词 含义
STC-SMI stc-smi工具的版本信息。
Driver Version npu-drv版本信息。
NPU STCP920设备索引。
Name NPU的产品名称。
Frequency STCP920频率信息。
Fan 风扇信息。
Temp 温度信息。
Power 功耗信息(实时功耗/额定功耗)。
Bus-Id PCI总线信息。
ClusterCount STCP920 cluster数。
Memory Used /Total 设备内存信息(已用内存 / 总数内存)。
Pid 运行任务系统进程号。
processName 运行任务系统进程名称。
MemoryUsed 运行任务NPU内存使用信息。

示例代码

#include <npurt.h>
#include <hpe.h>
#include <unistd.h>

int *global_data;

__global__ void hello(void) {
    printf("hello world from core %d/%d.\n", CoreID, CoreNum);
}

int main(void) {
    stcMalloc((void **)&global_data, 1024 * 1024);
    hello<<<NCORE>>>();
    sleep(10);
    stcFree(global_data);
    stcDeviceSynchronize();
    return 0;
}

Memory Used显示的625.04M内存中624是软件栈消耗的固定内存,剩下的1.04M内存是示例代码消耗的内存。 此示例使用内存数是1.04M,其中1M是代码中stcMalloc申请的1024*1024的内存数。0.04M的内存是加载的核函数所使用的内存数,这个大小与核函数的具体实现相关。

工具版本详细信息

$ stc-smi --version

stc-smi version: 1.0.0-gc768078

| 名词 | 含义 | | :- | :- | | 1.0.0-gc768078 | stc-smi工具详细版本信息 |

显示设备列表

$ stc-smi --list

NPU: 0
        STCP920         BUS-ID: 0:01:00.0 (P8K286.00-3-9-8)

| 名词 | 含义 | | :- | :- | | 0:01:00.0 | STCP920设备PCI总线信息 | | P8K286.00-3-9-8 | STCP920设备序列号 |

显示设备详细信息

$ stc-smi -q

NPU: 0
        Product Name: STCP920
        Chip count: 1
        Temperature: 36.79C
        Fan speed: N/A
        Power: 32.78W
        Cluster count: 4
        Frequency: 1000M
        Bus: 0000:01:00.0
        Vendor: 23e2 Device: 0100
        Current link speed: 16 GT/s
        Max link speed: 16 GT/s
        Current link width: 8
        Max link width: 16
        Write bytes: 39B
        Read bytes: 0B
        Driver: 1.0.0
        Chip version: 20200102
        MCU firmware: 1.0.0
        NPU ctrl firmware: 1.0.0
                Cluster 0:
                Frequency: 1000M        Core count: 8   DMA count: 2    Status: 
                WORK    Memory Used/Total: 156.00M/4.00G  
                Npc status:      IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE
                Cluster 1:
                Frequency: 1000M        Core count: 8   DMA count: 2    Status: 
                WORK    Memory Used/Total: 156.00M/4.00G
                Npc status:      IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE
                Cluster 2:
                Frequency: 1000M        Core count: 8   DMA count: 2    Status: 
                WORK    Memory Used/Total: 156.00M/4.00G
                Npc status:      IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE
                Cluster 3:
                Frequency: 1000M        Core count: 8   DMA count: 2    Status: 
                WORK    Memory Used/Total: 156.00M/4.00G
                Npc status:      IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE

显示cluster 0信息:

$ stc-smi -q -i 0 -c 0
NPU: 0
                Cluster 0:
                Frequency: 1000M        Core count: 8   DMA count: 2    Status: WORK    Memory Used/Total: 156.00M/4.00G
                Npc status:      IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE    IDLE
名词 含义 正常工作显示值
Chip count STCP920芯片个数 1
Temperature STCP920芯片核心温度 温度合理范围25C~85C
Fan speed STCP920散热风扇信息,N/A表示没有外接风扇 无风扇
Power STCP920实时功耗 额定功率160W
Cluster count STCP920 cluster个数 4
Vendor PCIE厂商ID 0x23e2
Device PCIE设备ID 0x0100
Current link speed PCIE设备当前连接速度 16GT/S GEN4、8GT/S GEN3、5GT/S GEN2 (视主机PCIE插槽而定)
Max link speed PCIE设备支持的最高连接速度 16GT/S (PCIE GEN4)
Current link width PCIe当前连接的通道数 16
Max link width PCIe支持连接的通道数 16
Write bytes PCIE写数据统计 数值动态变化
Read bytes PCIE读数据统计 数值动态变化
Driver STCP920驱动版本信息 1.x.x
Chip version STCP920芯片版本信息 20200102
MCU firmware STCP920 MCU固件版本信息 1.x.x
Cluster STCP920设备cluster索引 0~3
Core count 每个Cluster中NPC核数目 8
DMA count Cluster中DMA通道数目 2
Status Cluster工作状态信息 正常状态: WORK
错误状态: DEAD
Memory Used/Total Cluster内存使用信息 xxx.xxM(使用值)/4.00G(内存最大值)
Npc status 每个NPC的状态信息 正常状态: IDLE、RUNNING、STOP
错误状态: NPC-EXCEPTION(软件错误触发的NPC异常)、UNKNOWN

查询NPU设备信息

$ stc-smi --query-npu=index,name,utilization.npu,memory.used --format=csv

index, name, utilization.npu [%], memory.used [MiB]
0, STCP920, 0 %, 624 MiB

$ stc-smi --query-npu=index,temperature.npu,power.draw --format=csv

index, temperature.npu, power.draw [W]
0, 45, 32.50 W
> 注意:
> --query-npu的选项可以参考help中--query-npu的子项。

| 名词 | 含义 | | :- | :- | | index | STCP920设备索引 | | name | STCP920设备名称 | | utilization.npu | STCP920设备NPU利用率 | | memory.used | STCP920设备运行进程使用内存 | | temperature.npu| STCP920设备温度 | | power.draw| STCP920设备功率 |

如上命令是按照 CSV格式显示要查询的设备信息。

NPU设备复位

$ stc-smi -r -i 0

如上命令是复位STCP920设备0。

注意:执行设备复位命令前,请确认设备上没有正在执行的任务。