征程 6X 常用工具介绍
一、采集/设置系统信息的工具集
获取开发板 SOM 状态工具
[LINUX] hrut_somstatus 是用来获取当前开发板SOM状态的工具,包含温度、 cpu频率、bpu状态。
用法:
hrut_somstatus [-n count] [-d second]
获取开发板boardid工具
[LINUX] hrut_boardid 是用来获取当前开发板 boardid 的工具。
用法:
hrut_boardid
获取芯片 unique id 的工具
[LINUX] hrut_socuid 是用来获取当前芯片unique id的工具。
用法:
hrut_socuid
设置开发板IP地址工具
[LINUX] hrut_ipfull 是用来设置开发板 IP 地址的工具,支持设置、获取、清空三个功能,重启后生效,在系统起来后会自动配置上。
用法:
#设置 IP 地址
hrut_ipfull s <eth0/eth1> IP<x.x.x.x> MASK<y.y.y.y> GATEWAY<z.z.z.z>
#获取 IP 地址
hrut_ipfull g <eth0/eth1>
#空 IP 地址hrut_ipfull c <eth0/eth1>
举例:
#设置 IP 地址,以 eth0 为例
root@hobot:~# hrut_ipfull s eth0 192.168.0.100 255.255.255.0 192.168.0.1
root@hobot:~#
#获取 IP 地址,以 eth0 为例
root@hobot:~# hrut_ipfull g eth0
ip=192.168.0.100
mask=255.255.255.0
gw=192.168.0.1
#清空 IP 地址,以 eth0 为例
root@hobot:~# hrut_ipfull c eth0
clear all ip related setting.
二、设置开发板 MAC 地址工具
[LINUX] hrut_mac 是用来设置开发板 mac 地址的工具,支持设置、获取、清空三个功能,重启后生效,在系统起来后会自动配置上。
用法:
#设置 mac 地址
hrut_mac s <eth0/eth1> xx:xx:xx:xx:xx:xx
#获取 mac 地址
hrut_mac g <eth0/eth1>
#清空 mac 地址
hrut_mac c <eth0/eth1>
举例:
#设置mac地址,以eth0为例root@hobot:~# hrut_mac s eth0 11:22:33:44:55:66
root@hobot:~#
#获取mac地址,以eth0为例
root@hobot:~# hrut_mac g eth0
11:22:33:44:55:66
#清空mac地址,以eth0为例
root@hobot:~# hrut_mac c eth0
三、BPU 使用率测试工具
3.1 工具位置以及所包含文件
从项目接口同学处获取功耗包 power_consumption_benchmark_tool.7z。
功耗包解压至板端/map/benchmark_tool 目录下,其中 BPU 工具存放在/map/benchmark_tool/bpu 目录,具体目录结构如下:
root@hobot:/map/benchmark_tool/bpu# ls -al
total 64232
drwxr-xr-x 3 root root 4096 Sep 5 2024 .
drwx------ 10 root root 4096 Jan 27 2024 …
-rwxr-xr-x 1 root root 1660560 Aug 9 2024 bpu_os_test
-rwxr-xr-x 1 root root 212992 Aug 9 2024 input_1.bin
-rwxr-xr-x 1 root root 106496 Aug 9 2024 input_2.bin
drwxr-xr-x 2 root root 4096 Aug 9 2024 lib
-rwxr-xr-x 1 root root 3022 Sep 5 2024 run.sh
-rwxr-xr-x 1 root root 63766544 Aug 9 2024 yolov3.hbm
用法:
sh run.sh -r <xx>
举例:
# 设置bpu占用率为90
root@hobot:/map/benchmark_tool/bpu# sh run.sh -r 90
注:-r 数值为预设的 BPU 占用率,范围是 5-100,超过此范围会报输入错误。可以通过 hrut_somstatus 命令查看实际的 BPU 占用率。(实际使用过程中,出现与设置阈值±5%的抖动为正常现象)
root@hobot:/map/benchmark/bpu# sh run.sh -r 100
#启动新的 ssh 终端查看对应 group 的占用值
root@hobot:~# hrut_somstatus
=====================1=====================
temperature–>
pvt_cmn_pvtc1_t1 : 36.893 ©
pvt_cmn_pvtc1_t2 : 36.342 ©
pvt_mcu_pvtc1_t1 : 39.283 ©
pvt_mcu_pvtc1_t2 : 39.099 ©
pvt_bpu_pvtc1_t1 : 39.834 ©
voltage–>
FAKE : 100.0 (mV)
VDDQ_DDR2 : 492.0 (mV)
VDD_MCU : 742.0 (mV)
…
MCU_PVTC1_V15 : 0.0 (mV)
MCU_PVTC1_V16 : 0.0 (mV)
cpu frequency–>
min cur max
policy0: 1500000000 2000000000 2000000000
policy4: 1500000000 2000000000 2000000000
bpu status information---->
ratio
bpu0: 99
… _power_consumption_benchmark_tools:
四、功耗测试工具
4.1 工具概述
本工具可同时跑 CPU、BPU、VDSP、Codec 和 GPU 的负载加压用例,并实时记录各负载、芯片结温和 DDR 带宽等信息,用于功耗测试。
从项目接口同学处获取功耗包 power_consumption_benchmark_tool.7z。
功耗包需手动解压到板端,解压后的目录结构如下:
.
├── bpu
├── codec
├── cpu
├── gpu
├── mdma
├── monitor
├── run.sh
└── vdsp
注:
- 该软件包运行后,因实时记录各负载、芯片结温和 DDR 带宽等信息到文件中,需要较大空间,因此建议拷贝到有充足空间的目录下,如/map。
- Release 包中不包含 GPU 的功耗测试工具(glmark2),需通过“apt install glmark2-es2-drm”命令进行安装。
4.2 运行
将软件包通过 scp 命令传至板端的/map,假设板端网络已通,且 ip 为 board_ip:
user.name@compile-server:~/work/J6$ scp power_consumption_benchmark_tool.7z root@board_ip:/map
release 版本上,需要提前安装 7z 工具,用以解压软件包,安装命令为:
sudo apt-get updatesudo apt install p7zip-full
板端解压至/map/benchmark_tool 目录下:
root@hobot:/map# mkdir benchmark_tool
root@hobot:/map# 7z x power_consumption_benchmark_tool.7z -o/map/benchmark_tool/
执行如下命令,默认同时跑 CPU、BPU、VDSP、Codec 和 GPU 的负载加压用例:
root@hobot:/map/benchmark_tool# bash run.sh
4.3 BPU 配置
运行说明
BPU 加压程序使用上述的 :ref:BPU 使用率测试工具 <bpu_radio_tool>
,默认启动后会一直跑,除非终止程序,运行命令如下:
root@hobot:/map/benchmark_tool/bpu# bash run.sh -r 100
BPU 负载可通过指定-r 参数来调节,参数范围是[5, 100]。
- 并行跑多个用例时,默认负载是 100%,可通过修改/map/benchmark_tool 目录下的 run.sh 进行调节。
示例:设置 BPU 负载为 80%。
cd ${SCRIPT_DIR}/bpu && bash run.sh -r 80
- BPU 负载用例时,直接执行 BPU 目录下的 run.sh,加上-r 参数进行调节。
示例:设置 BPU 负载为 100%。
root@hobot:/map/benchmark_tool/bpu# bash run.sh -r 100
负载查看
运行 bpu 加压程序后,可在/map/benchmark_tool/monitor/output/bpu_load 文件中查看 BPU 的实时负载,每秒记录一次:
root@hobot:/map/benchmark_tool/monitor/output# cat bpu_load
Tue Jun 4 19:04:13 CST 2024: bpu load: 0
Tue Jun 4 19:04:14 CST 2024: bpu load: 0
Tue Jun 4 19:04:15 CST 2024: bpu load: 0
Tue Jun 4 19:04:16 CST 2024: bpu load: 69
Tue Jun 4 19:04:17 CST 2024: bpu load: 97
Tue Jun 4 19:04:18 CST 2024: bpu load: 99
Tue Jun 4 19:04:19 CST 2024: bpu load: 99
Tue Jun 4 19:04:20 CST 2024: bpu load: 98
4.4 CPU 配置
运行说明
CPU 加压程序默认启动后会一直跑,除非终止程序,运行命令如下:
root@hobot:/map/benchmark_tool/cpu# bash run.sh
并行跑多个用例时,默认跑满所有 CPU 核的 100%负载。
可通过指定 cpu 的 run.sh 参数来调节 CPU 负载。
用法:
bash run.sh <core_num> <load> <time>
- 第一个参数 core_num 设置跑的 cpu 核数,范围是[1,6];
- 第二个参数 load 设置各个核的负载,范围是[50,100];
- 第三个参数设置运行时长,单位为秒,大于 0。
示例:同时跑 3 个核,各个核的负载为 50%,运行 5 秒。
root@hobot:/map/benchmark_tool/cpu# bash run.sh 3 50 5
负载查看
运行 cpu 加压程序后,可在/map/benchmark_tool/monitor/output/cpu_load 文件中查看 CPU 的实时负载,每秒记录一次:
root@hobot:/map/benchmark_tool/monitor/output# cat cpu_load
Tue Jun 4 19:04:13 CST 2024: cpu load: 83.33
Tue Jun 4 19:04:14 CST 2024: cpu load: 30.05
Tue Jun 4 19:04:15 CST 2024: cpu load: 34.49
Tue Jun 4 19:04:16 CST 2024: cpu load: 26.80
Tue Jun 4 19:04:17 CST 2024: cpu load: 23.75
Tue Jun 4 19:04:18 CST 2024: cpu load: 44.50
Tue Jun 4 19:04:19 CST 2024: cpu load: 100.00
Tue Jun 4 19:04:20 CST 2024: cpu load: 100.00
Tue Jun 4 19:04:21 CST 2024: cpu load: 100.00
Tue Jun 4 19:04:22 CST 2024: cpu load: 100.00
Tue Jun 4 19:04:23 CST 2024: cpu load: 100.00
4.5 Codec 配置
运行说明
Codec 加压程序的运行命令如下:
root@hobot:/map/benchmark_tool/codec# bash run.sh 10000000 10000000
并行跑多个用例时,默认跑满 jpu 和 vpu 的 100%负载,jpu 跑 10000000s,vpu 跑 10000000s。
可通过指定 codec 的 run.sh 参数来调节运行时长。
用法:
bash run.sh <jpu_test_time> <vpu_test_time>
- 第一个参数 jpu_test_time 设置 jpu 运行时间,单位为秒,要求大于 0;
- 第二个参数 vpu_test_time 设置 vpu 运行时间,单位为秒,要求大于 0;
示例:jpu 跑 1000s,vpu 跑 1000s。
root@hobot:/map/benchmark_tool/codec# bash run.sh 1000 1000
负载查看
运行 codec 加压程序后,可在/map/benchmark_tool/monitor/output/jpu_load 和 vpu_load 文件中查看 jpu 和 vpu 的实时负载,每秒记录一次:
root@hobot:/map/benchmark_tool/monitor/output# cat jpu_load
Tue Jun 4 19:04:13 CST 2024: jpu load: 0
Tue Jun 4 19:04:14 CST 2024: jpu load: 0
Tue Jun 4 19:04:15 CST 2024: jpu load: 0
Tue Jun 4 19:04:16 CST 2024: jpu load: 0
Tue Jun 4 19:04:17 CST 2024: jpu load: 0
Tue Jun 4 19:04:18 CST 2024: jpu load: 0.7
Tue Jun 4 19:04:19 CST 2024: jpu load: 38.9
Tue Jun 4 19:04:20 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:21 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:22 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:23 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:25 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:26 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:27 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:28 CST 2024: jpu load: 100.0
Tue Jun 4 19:04:29 CST 2024: jpu load: 100.0
root@hobot:/map/benchmark_tool/monitor/output# cat vpu_load
Tue Jun 4 19:04:13 CST 2024: vpu load: 0
Tue Jun 4 19:04:14 CST 2024: vpu load: 0
Tue Jun 4 19:04:15 CST 2024: vpu load: 0
Tue Jun 4 19:04:16 CST 2024: vpu load: 0
Tue Jun 4 19:04:17 CST 2024: vpu load: 0
Tue Jun 4 19:04:18 CST 2024: vpu load: 1.0
Tue Jun 4 19:04:19 CST 2024: vpu load: 39.0
Tue Jun 4 19:04:20 CST 2024: vpu load: 99.0
Tue Jun 4 19:04:21 CST 2024: vpu load: 99.0
Tue Jun 4 19:04:22 CST 2024: vpu load: 100.0
Tue Jun 4 19:04:23 CST 2024: vpu load: 100.0
Tue Jun 4 19:04:25 CST 2024: vpu load: 100.0
Tue Jun 4 19:04:26 CST 2024: vpu load: 99.0
Tue Jun 4 19:04:27 CST 2024: vpu load: 100.0
Tue Jun 4 19:04:28 CST 2024: vpu load: 100.0
Tue Jun 4 19:04:29 CST 2024: vpu load: 100.0
4.6 VDSP 配置
运行说明
VDSP 加压程序的运行命令如下:
root@hobot:/map/benchmark_tool/vdsp# bash run.sh 28800 100
并行跑多个用例时,默认跑满 VDSP 的 100%负载,运行 8 小时。
可通过指定 vdsp 的 run.sh 参数来调节运行时长和负载。
用法:
bash run.sh <test_time> <loading>
- 第一个参数 test_time 设置 vdsp 运行时间,单位为秒,要求大于 0;
- 第二个参数 loading 设置 vdsp 负载,范围是[10,100];
示例:vdsp 跑 50%负载,运行 1 小时。
root@hobot:/map/benchmark_tool/vdsp# bash run.sh 3600 50
负载查看
运行 vdsp 加压程序后,可在/map/benchmark_tool/monitor/output/vdsp_load 文件中查看 VDSP 的实时负载,每秒记录一次:
root@hobot:/map/benchmark_tool/monitor/output# cat vdsp_load
Tue Jun 4 19:04:19 CST 2024: vdsp load: 93
Tue Jun 4 19:04:20 CST 2024: vdsp load: 96
Tue Jun 4 19:04:21 CST 2024: vdsp load: 97
Tue Jun 4 19:04:22 CST 2024: vdsp load: 98
Tue Jun 4 19:04:23 CST 2024: vdsp load: 98
Tue Jun 4 19:04:24 CST 2024: vdsp load: 98
Tue Jun 4 19:04:25 CST 2024: vdsp load: 98
Tue Jun 4 19:04:26 CST 2024: vdsp load: 98
Tue Jun 4 19:04:27 CST 2024: vdsp load: 98
Tue Jun 4 19:04:28 CST 2024: vdsp load: 98
Tue Jun 4 19:04:29 CST 2024: vdsp load: 99
Tue Jun 4 19:04:30 CST 2024: vdsp load: 99
Tue Jun 4 19:04:31 CST 2024: vdsp load: 99
Tue Jun 4 19:04:32 CST 2024: vdsp load: 99
Tue Jun 4 19:04:33 CST 2024: vdsp load: 99
Tue Jun 4 19:04:34 CST 2024: vdsp load: 99
4.7 GPU 配置
运行说明
GPU 加压程序启动后,会一直运行,运行命令如下:
#/map/benchmark_tool/run.sh
cd ${SCRIPT_DIR}/gpu && bash run.sh
并行跑多个用例时,默认跑满 GPU 的 100%负载。
4.8 关键信息监控
通过在后台运行监控程序,可实时监控各负载、芯片结温和 DDR 带宽等信息,运行命令如下:
… attention::
同一时刻,不可运行多个相同的监控程序,否则会导致监控信息不准确!
# 监控ddr带宽
bash monitor/monitor.sh -m ddr
# 监控芯片结温
bash monitor/monitor.sh -m temp
# 监控bpu负载
bash monitor/monitor.sh -m bpu
# 监控codec中的jpu和vpu负载
bash monitor/monitor.sh -m codec
# 监控cpu负载
bash monitor/monitor.sh -m cpu
# 监控vdsp负载
bash monitor/monitor.sh -m vdsp
# 监控以上所有信息
bash monitor/monitor.sh -m all
4.9 关键信息查看
芯片结温
并行跑多个用例时,芯片结温会每秒输出到终端上,同时保存到/map/benchmark_tool/monitor/output/temp 文件中。
root@hobot:/map/benchmark_tool/monitor/output# head -n 10 temp
2024年 09月 10日 星期二 20:08:27 CST: Temp: pvt_cmn_pvtc1_t1 pvt_cmn_pvtc1_t2 pvt_mcu_pvtc1_t1 pvt_mcu_pvtc1_t2 pvt_bpu_pvtc1_t1
2024年 09月 10日 星期二 20:08:27 CST: 30276000 31563000 28989000 29541000 31011000
2024年 09月 10日 星期二 20:08:28 CST: Temp: pvt_cmn_pvtc1_t1 pvt_cmn_pvtc1_t2 pvt_mcu_pvtc1_t1 pvt_mcu_pvtc1_t2 pvt_bpu_pvtc1_t1
2024年 09月 10日 星期二 20:08:28 CST: 33217000 32298000 33401000 33952000 35423000
2024年 09月 10日 星期二 20:08:29 CST: Temp: pvt_cmn_pvtc1_t1 pvt_cmn_pvtc1_t2 pvt_mcu_pvtc1_t1 pvt_mcu_pvtc1_t2 pvt_bpu_pvtc1_t1
2024年 09月 10日 星期二 20:08:29 CST: 33952000 33217000 34688000 35055000 36526000
2024年 09月 10日 星期二 20:08:30 CST: Temp: pvt_cmn_pvtc1_t1 pvt_cmn_pvtc1_t2 pvt_mcu_pvtc1_t1 pvt_mcu_pvtc1_t2 pvt_bpu_pvtc1_t1
2024年 09月 10日 星期二 20:08:30 CST: 34320000 33585000 35055000 35423000 36893000
2024年 09月 10日 星期二 20:08:31 CST: Temp: pvt_cmn_pvtc1_t1 pvt_cmn_pvtc1_t2 pvt_mcu_pvtc1_t1 pvt_mcu_pvtc1_t2 pvt_bpu_pvtc1_t1
2024年 09月 10日 星期二 20:08:31 CST: 34688000 33769000 35239000 35791000 37261000
DDR 带宽
并行跑多个用例时,会通过 hrut_ddr 工具,每秒实时将 DDR 带宽信息保存到/map/benchmark_tool/monitor/output/ddr_bandwidth 文件中。
root@hobot:/map/benchmark_tool/monitor/output# head -n 40 ddr_bandwidth
ddr monitors devices all enabled
subsys enabled: all
cmd output enabled
sample config:period: 1000000, num: 1Elapsed time[1000.008] ms localtime: 2024-09-10 20:08:28.076890
---------------------------------------------------------Perf(MiB/s)| Range1:all| Bandwidth
---------------------------------------------------------Read| 5752| 5708
---------------------------------------------------------Write| 769| 750
---------------------------------------------------------Elapsed time[2000.008] ms localtime: 2024-09-10 20:08:29.076890
---------------------------------------------------------Perf(MiB/s)| Range1:all| Bandwidth
---------------------------------------------------------Read| 18862| 18859
---------------------------------------------------------Write| 943| 939
---------------------------------------------------------Elapsed time[3000.011] ms localtime: 2024-09-10 20:08:30.076893
---------------------------------------------------------Perf(MiB/s)| Range1:all| Bandwidth
---------------------------------------------------------Read| 18787| 18785
---------------------------------------------------------Write| 914| 911
---------------------------------------------------------Elapsed time[4000.010] ms localtime: 2024-09-10 20:08:31.076892
---------------------------------------------------------Perf(MiB/s)| Range1:all| Bandwidth
---------------------------------------------------------Read| 18747| 18745
---------------------------------------------------------Write| 914| 910
运行期间 log
为防止并行跑多用例时,各个负载用例运行时 log 同时输出到终端错乱,默认配置如下:
- cpu、gpu、codec 和 vdsp 的用例运行期间的 log 保存到各用例对应的 output/data 文件中;
- bpu 用例的 log 不多,只有运行之初有,所以直接输出到串口中;
终止运行
由于各负载用例都会在后台运行,所以终端执行 Ctrl+C 后,无法彻底终止用例,需额外执行如下命令:
终止所有 benchmark 负载用例和监控程序:
root@hobot:/map/benchmark_tool# bash monitor/monitor.sh -e
终止单个 benchmark 负载用例,以 cpu 为例:
root@hobot:/map/benchmark_tool# bash monitor/monitor_cpu.sh -e
终止所有监控程序:
root@hobot:/map/benchmark_tool# bash monitor/monitor.sh -E all
终止单个监控程序,以 vdsp 为例:
root@hobot:/map/benchmark_tool# bash monitor/monitor.sh -E vdsp