5.2.1. proc文件系统介绍

proc文件系统接口在/proc节点下创建设备信息节点,用户通过cat或者编程的方式读取相关节点获取设备温度、版本等信息。

bm-smi侧重于以界面的形式直观显示设备信息,proc文件系统接口侧重于为用户提供编程获取设备信息的接口。 下表列举了proc文件系统可以获取的设备信息以及在PCIe和SOC模式下的支持情况:

设备信息

PCIe模式

SOC模式

card_num

支持

不支持

chip_num

支持

不支持

chip_num_on_card

支持

不支持

board_power

支持

不支持

board_temp

支持

不支持

chipid

支持

不支持

chip_temp

支持

不支持

dbdf

支持

不支持

dynfreq

支持

不支持

ecc

支持

不支持

maxboardp

支持

不支持

mode

支持

不支持

pcie_cap_speed

支持

不支持

pcie_cap_width

支持

不支持

pcie_link_speed

支持

不支持

pcie_link_width

支持

不支持

pcie_region

支持

不支持

tpuid

支持

不支持

tpu_maxclk

支持

不支持

tpu_minclk

支持

不支持

tpu_freq

支持

不支持

tpu_power

支持

不支持

firmware_info

支持

不支持

sn

支持

不支持

boot_loader_version

支持

不支持

board_type

支持

不支持

driver_version

支持

不支持

board_version

支持

不支持

mcu_version

支持

不支持

versions

支持

不支持

cdma_in_time

支持

不支持

cdma_in_counter

支持

不支持

cdma_out_time

支持

不支持

cdma_out_counter

支持

不支持

tpu_process_time

支持

不支持

completed_api_counter

支持

不支持

send_api_counter

支持

不支持

tpu_volt

支持

不支持

tpu_cur

支持

不支持

fan_speed

支持

不支持

media

支持

不支持

a53_enable

支持

不支持

arm9_cache

支持

不支持

bmcpu_status

支持

不支持

bom_version

支持

不支持

boot_mode

支持

不支持

clk

支持

不支持

ddr_capacity

支持

不支持

dumpreg

支持

不支持

heap

支持

不支持

location

支持

不支持

pcb_version

支持

不支持

pmu_infos

支持

不支持

status

支持

不支持

vddc_power

支持

不支持

vddphy_power

支持

不支持

jpu

不支持

支持

vpu

不支持

支持

驱动安装时系统根据板卡数量依次创建/proc/bmsophon/card0…n目录,其中card0目录对应存放第0张板卡的信息,card1目录对应存放第1张板卡信息,依次类推。

在板卡目录下根据当前板卡上设备数量依次创建/proc/bmsophon/cardn/bmsophon0…x目录,其中bmsophonx中的x对应板卡n下设备id为x的设备信息,例如机器上只插了一张SC5+,安装驱动后对应生成/proc/bmsophon/card0,card0目录下会生成bmsophon0/1/2目录,分别存放设备0/1/2的信息。

SOC模式只有JPU和VPU支持 proc文件系统接口,节点分别是/proc/jpuinfo和/proc/vpuinfo。

5.2.2. 各项参数的含义

SOC模式只有/proc/jpuinfo和/proc/vpuinfo; PCIe 模式proc文件系统中目录和文件节点安排如下:

bitmain@weiqiao-MS-7B46:~/work/bm168x$ ls /proc/bmsophon/ -l

total 0

-r--r--r--.
1 root root 0 5月 6 23:06 card_num

-r--r--r--.
1 root root 0 5月 6 23:06 chip_num

-r--r--r--.
1 root root 0 5月 6 23:06 driver_version

dr-xr-xr-x 2 root root 0 5月 6 13:46 card0 //文件夹下面有板卡0的信息,如下:

bitmain@weiqiao-MS-7B46:~/work/bm168x$ ls /proc/bmsophon/card0/ -l

total 0

-r--r--r--.
1 root root 0 5月 6 23:06 board_power

-r--r--r--.
1 root root 0 5月 6 23:06 board_temp

-r--r--r--.
1 root root 0 5月 6 23:06 board_type

-r--r--r--.
1 root root 0 5月 6 23:06 board_version

-r--r--r--.
1 root root 0 5月 6 23:06 bom_version

-r--r--r--.
1 root root 0 5月 6 23:06 chipid

-r--r--r--.
1 root root 0 5月 6 23:06 chip_num_on_card

-rw-r--r--.
1 root root 0 5月 6 23:06 fan_speed

-r--r--r--.
1 root root 0 5月 6 23:06 maxboardp

-r--r--r--.
1 root root 0 5月 6 23:06 mode

-r--r--r--.
1 root root 0 5月 6 23:06 pcb_version

-r--r--r--.
1 root root 0 5月 6 23:06 sn

-r--r--r--.
1 root root 0 5月 6 23:06 tpu_maxclk

-r--r--r--.
1 root root 0 5月 6 23:06 tpu_minclk

-r--r--r--.
1 root root 0 5月 6 23:06 versions

dr-xr-xr-x.
2 root root 0 5月 6 23:06 bmsophon0//文件夹下有设备0的信息,如下:

bitmain@weiqiao-MS-7B46:~/work/bm168x$ ls /proc/bmsophon/card0/bmsophon0 -l

total 0

-r--r--r--.
1 root root 0 5月 6 23:11 a53_enable

-r--r--r--.
1 root root 0 5月 6 23:11 arm9_cache

-r--r--r--.
1 root root 0 5月 6 23:11 bmcpu_status

-r--r--r--.
1 root root 0 5月 6 23:11 boot_loader_version

-r--r--r--.
1 root root 0 5月 6 23:11 boot_mode

-r--r--r--.
1 root root 0 5月 6 23:11 cdma_in_counter

-r--r--r--.
1 root root 0 5月 6 23:11 cdma_in_time

-r--r--r--.
1 root root 0 5月 6 23:11 cdma_out_counter

-r--r--r--.
1 root root 0 5月 6 23:11 cdma_out_time

-r--r--r--.
1 root root 0 5月 6 23:11 chip_temp

-r--r--r--.
1 root root 0 5月 6 23:11 clk

-r--r--r--.
1 root root 0 5月 6 23:11 completed_api_counter

-r--r--r--.
1 root root 0 5月 6 23:11 dbdf

-r--r--r--.
1 root root 0 5月 6 23:11 ddr_capacity

-rw-r--r--.
1 root root 0 5月 6 23:11 dumpreg

-rw-r--r--.
1 root root 0 5月 6 23:11 dynfreq

-r--r--r--.
1 root root 0 5月 6 23:11 ecc

-r--r--r--.
1 root root 0 5月 6 23:11 heap

-rw-r--r--.
1 root root 0 5月 6 23:11 jpu

-r--r--r--.
1 root root 0 5月 6 23:11 location

-r--r--r--.
1 root root 0 5月 6 23:11 mcu_version

-rw-r--r--.
1 root root 0 5月 6 23:11 media

-r--r--r--.
1 root root 0 5月 6 23:11 pcie_cap_speed

-r--r--r--.
1 root root 0 5月 6 23:11 pcie_cap_width

-r--r--r--.
1 root root 0 5月 6 23:11 pcie_link_speed

-r--r--r--.
1 root root 0 5月 6 23:11 pcie_link_width

-r--r--r--.
1 root root 0 5月 6 23:11 pcie_region

-r--r--r--.
1 root root 0 5月 6 23:11 pmu_infos

-r--r--r--.
1 root root 0 5月 6 23:11 sent_api_counter

-r--r--r--.
1 root root 0 5月 6 23:11 status

-r--r--r--.
1 root root 0 5月 6 23:11 tpu_cur

-rw-r--r--.
1 root root 0 5月 6 23:06 tpu_freq

-r--r--r--.
1 root root 0 5月 6 23:11 tpuid

-r--r--r--.
1 root root 0 5月 6 23:11 tpu_power

-r--r--r--.
1 root root 0 5月 6 23:11 firmware_info

-r--r--r--.
1 root root 0 5月 6 23:11 tpu_process_time

-rw-r--r--.
1 root root 0 5月 6 23:11 tpu_volt

-rw-r--r--.
1 root root 0 5月 6 23:11 vddc_power

-rw-r--r--.
1 root root 0 5月 6 23:11 vddphy_power

注:如果PCIe模式使用SC5P,则mcu_version会创建在/proc/bmsophon/card/板卡目录下。

如果使用其他类型板卡,则mcu_version会创建在/proc/bmsophon/card/bmsophon/设备目录下。

5.2.3. 各项参数的含义和使用方法

5.2.3.1. PCIe模式各个设备的详细信息

  • card_num

读写属性:只读;

含义:系统板卡数量

  • chip_num

读写属性:只读;

含义:系统设备数量

  • chip_num_on_card

读写属性:只读;

含义:对应板卡上设备数量

  • board_power

读写属性:只读;

含义:板级功耗

  • board_temp

读写属性:只读;

含义:板级温度

  • chipid

读写属性:只读;

含义:npu id(0x1684x/0x1684/0x1682)

  • chip_temp

读写属性:只读

含义:片上温度

  • dbdf

读写属性:只读

含义:domain:bus:dev.function

  • dynfreq

读写属性:读写

含义:使能或者禁止动态智能视觉深度学习处理器调频功能;0/1有效,其他值无效

  • ecc

读写属性:只读

含义:打开或者关闭ECC功能

  • maxboardp

读写属性:只读

含义:最大板级功耗

  • mode

读写属性:只读

含义:工作模式,PCIe/SOC

  • pcie_cap_speed

读写属性:只读

含义:设备支持的PCIe最大速度

  • pcie_cap_width

读写属性:只读

含义:设备支持的PCIe接口最大lane的宽度

  • pcie_link_speed

读写属性:只读

含义:设备的PCIe接口速度

  • pcie_link_width

读写属性:只读

含义:设备的PCIe接口lane宽度

  • pcie_region

读写属性:只读

含义:设备PCIe bar的大小

  • tpuid

读写属性:只读

含义:智能视觉深度学习处理器的ID(0/1/2/3……)

  • tpu_maxclk

读写属性:只读

含义:智能视觉深度学习处理器的最大工作频率

  • tpu_minclk

读写属性:只读

含义:智能视觉深度学习处理器的最小工作频率

  • tpu_freq

读写属性:读写

含义:智能视觉深度学习处理器的工作频率,可通过写入参数来改变频率,写入前应向dynfreq写入0来关闭动态智能视觉深度学习处理器调频,示例如下:

sudo -s
echo 0 > /proc/bmsophon/card0/bmsophon0/dynfreq
echo 750 > /proc/bmsophon/card0/bmsophon0/tpu_freq
  • tpu_power

读写属性:只读

含义:智能视觉深度学习处理器的瞬时功率

  • firmware_info

读写属性:只读

含义:firmware的版本信息,包括commit id和编译时间

  • sn

读写属性:只读

含义:板卡产品编号

  • boot_loader_version

读写属性:只读

含义:spi flash 中的bootloader 版本号

  • board_type

读写属性:只读

含义:板卡类型

  • driver_version

读写属性:只读

含义:驱动的版本号

  • board_version

读写属性:只读

含义:板卡硬件的版本号

  • mcu_version

读写属性:只读

含义:mcu软件版本号

  • versions

读写属性:只读

含义:板卡软硬件版本的集合

  • cdma_in_time

读写属性:只读

含义:cdma 从host搬数据到板卡消耗的总时间

  • cdma_in_counter

读写属性:只读

含义:cdma 从host搬数据到板卡的总次数

  • cdma_out_time

读写属性:只读

含义:cdma 从板卡搬数据到host消耗的总时间

  • cdma_out_counter

读写属性:只读

含义:cdma 从板卡搬数据到host的总次数

  • tpu_process_time

读写属性:只读

含义:智能视觉深度学习处理器处理过程中消耗的时间

  • completed_api_counter

读写属性:只读

含义:已完成api的次数

  • send_api_counter

读写属性:只读

含义:已发送api的次数

  • tpu_volt

读写属性:读写

含义:智能视觉深度学习处理器的电压,可通过写入参数来改变电压

  • tpu_cur

读写属性:只读

含义:智能视觉深度学习处理器电流

  • fan_speed

读写属性:只读

含义:duty 风扇调速pwm 占空比,fan_speed 风扇实际转速

  • media

读写属性:只读

total_mem_size :vpu和jpu使用内存总大小

used_mem_size :vpu和jpu正在使用的内存

free_mem_size :空闲内存

id :vpu core的编号

link_num :编/解码路数

  • a53_enable

读写属性:只读

含义:a53使能状态

  • arm9_cache

读写属性:只读

含义:arm9的cache的使能状态

  • bmcpu_status

读写属性:只读

含义:bmcpu的状态

  • bom_version

读写属性:只读

含义:bom的版本号

  • boot_mode

读写属性:只读

含义:启动方式

  • clk

读写属性:只读

含义:各个模块的时钟

  • ddr_capacity

读写属性:只读

含义:ddr的容量

  • dumpreg

读写属性:读写

含义:转存寄存器,输入1转存到智能视觉深度学习处理器寄存器,输入2转存到gdma寄存器

  • heap

读写属性:只读

含义:显示各个heap的大小

  • location

读写属性:只读

含义:显示当前位于哪个设备之上

  • pcb_version

读写属性:只读

含义:pcb的版本号

  • pmu_infos

读写属性:只读

含义:更详细的电流电压信息

  • status

读写属性:只读

含义:板卡状态

  • vddc_power

读写属性:只读

含义:vddc功率

  • vddphy_power

读写属性:只读

含义:vddphy功率

5.2.3.2. SOC模式各个设备的详细信息

SOC模式只有JPU和VPU支持proc接口,对应的proc节点为/proc/jpuinfo和/proc/vpuinfo。

  • jpuinfo

读写属性:只读

JPU loadbalance : 记录JPU0-JPU1(1684x),JPU0-JPU3(1684)编码/解码次数,JPU*为内部的JPEG编解码器, 取值范围:0~ 2147483647

  • vpuinfo

读写属性:只读

id: vpu core的编号,取值范围: 0~2(1684x), 0-4(1684)

link_num: 编/解码路数,取值范围:0~32