希姆计算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。
注意:执行设备复位命令前,请确认设备上没有正在执行的任务。