当前位置: 首页 > news >正文

征程 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

注:

  1. 该软件包运行后,因实时记录各负载、芯片结温和 DDR 带宽等信息到文件中,需要较大空间,因此建议拷贝到有充足空间的目录下,如/map。
  2. 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]。

  1. 并行跑多个用例时,默认负载是 100%,可通过修改/map/benchmark_tool 目录下的 run.sh 进行调节。

示例:设置 BPU 负载为 80%。

cd ${SCRIPT_DIR}/bpu && bash run.sh -r 80
  1. 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>
  1. 第一个参数 core_num 设置跑的 cpu 核数,范围是[1,6];
  2. 第二个参数 load 设置各个核的负载,范围是[50,100];
  3. 第三个参数设置运行时长,单位为秒,大于 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>
  1. 第一个参数 jpu_test_time 设置 jpu 运行时间,单位为秒,要求大于 0;
  2. 第二个参数 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>
  1. 第一个参数 test_time 设置 vdsp 运行时间,单位为秒,要求大于 0;
  2. 第二个参数 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 同时输出到终端错乱,默认配置如下:

  1. cpu、gpu、codec 和 vdsp 的用例运行期间的 log 保存到各用例对应的 output/data 文件中;
  2. 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
http://www.xdnf.cn/news/1358821.html

相关文章:

  • AI大模型应用开发面试:深入解析技术点
  • 每日算法题【链表】:相交链表、环形链表、环形链表II
  • 鸿蒙中点击完成时延分析
  • LeetCode 42.接雨水
  • response对象的elapsed属性
  • Elasticsearch Ruby 客户端故障排查实战指南
  • Bright Data MCP:突破AI数据获取限制的革命性工具
  • 阿里云 OSS 前端直传实战:表单上传 + Policy 模式详解
  • GD32VW553-IOT 测评和vscode开发环境搭建
  • 硬件开发_基于物联网的宠物猫饲养系统
  • 互联网大厂Java面试模拟:核心技术点深度解析
  • 极验demo(float)(二)
  • 从字节码层面剖析以太坊智能合约创建原理
  • EXCEL实现复制后倒序粘贴
  • 从Android到鸿蒙:一场本应无缝的转型-优雅草卓伊凡
  • iptables 防火墙核心知识梳理(附实操指南)
  • 【文献阅读】Land degradation drivers of anthropogenic sand and dust storms
  • 《一次高并发场景下疑难Bug的深度排查与复盘》
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十七)设置主题
  • AI代码生成器全面评测:六个月、500小时测试揭示最强开发助手
  • CI/CD持续集成及持续交付详解
  • 户外广告牌识别误报率↓79%!陌讯多模态融合算法在城市广告合规监测的实战解析
  • TEE-可信执行环境
  • 程序里的依赖和中间件的依赖冲突,怎么解决
  • C++20: std::span
  • 多线程下单例如何保证
  • elasticsearch 7.x elasticsearch是查询的数据量大于10000分页有问题还是es的库总量大于10000分页有?
  • 【软件安全】ARM64、x86、32 位与 64 位架构的区别、定义、应用背景
  • 安装gitlab
  • Dify 从入门到精通(第 53/100 篇):Dify 的分布式架构(进阶篇)