4.7.8. hrut_bpuprofile
hrut_bpuprofile 用于配置和查询 BPU(硬件加速单元)相关参数,包括电源、时钟、频率、使用率等。
4.7.8.1. 语法说明
以下是执行 hrut_bpuprofile -h 输出的 Usage:
BPU PROFILE HELP INFORMATION
>>> -b/--bpu [BPU CORE,0--bpu0] (required)
>>> -p/--power [POWER OFF/ON,0--OFF,1--ON]
>>> -c/--clock [CLOCK OFF/ON,0--OFF,1--ON]
>>> -t/--time [GET FC TIME,NO ARGUMENT]
>>> -f/--frq [SET BPU FREQUENCY,ARGUMENT:N]
>>> -r/--ratio [BPU RATIO,N--N TIMES,0--FOREVER]
4.7.8.2. 参数选项说明
以下是 hrut_bpuprofile 支持的选项及其说明:
-b或 –bpu:指定 BPU 核心编号( 0 表示 BPU0 )。-p或 –power:设置 BPU 的电源状态( 0 表示关闭, 1 表示开启)。-c或 –clock:设置 BPU 的时钟状态( 0 表示关闭, 1 表示开启)。-t或 –time:获取 BPU 的 FC 时间(无参数)。-f或 –frq:设置 BPU 的工作频率(参数为频率值)。-r或 –ratio:设置 BPU 的使用率(参数为 N 表示 N 次, 0 表示永久)。-h或 –help:显示帮助信息,解释命令的使用方法。
4.7.8.3. 各项命令选项及其功能说明
设置 BPU 电源
开启命令:
root@buildroot:~# hrut_bpuprofile -b 0 -p 1
功能: 设置 BPU 核心 0 的电源状态为开启,
关闭命令:
root@buildroot:~# hrut_bpuprofile -b 0 -p 0
功能:
设置 BPU 核心 0 的电源状态为关闭。
打印输出:
set bpu[0] power
设置 BPU 时钟
开启命令:
root@buildroot:~# hrut_bpuprofile -b 0 -c 1
打印输出:
bpu[0] clock is enable
功能: 设置 BPU 核心 0 的时钟状态为开启。
关闭命令:
root@buildroot:~# hrut_bpuprofile -b 0 -c 0
功能: 设置 BPU 核心 0 的时钟状态为关闭。
打印输出:
bpu[0] clock is disable
获取 BPU FC 时间
命令:
hrut_bpuprofile -b 0 -t
功能:
该命令会获取 BPU 核心 0 的 FC 时间( Flow Control Time,流控时间),这通常是指 BPU 在处理任务时的详细时间信息,包括任务的开始时间、结束时间和运行时间等。
打印输出:
root@buildroot:/userdata# hrut_bpuprofile -b 0 -t
index id:hwid group prio s_time e_time r_time
916 1:458 16:4447 0 6016162 6016193 30977us
918 1:459 16:4447 0 6016194 6016224 30692us
920 1:460 16:4447 0 6016225 6016256 30760us
922 1:461 16:4447 0 6016257 6016288 31173us
924 1:462 16:4447 0 6016289 6016320 31009us
926 1:463 16:4447 0 6016321 6016352 31564us
928 1:464 16:4447 0 6016353 6016384 30351us
930 1:465 16:4447 0 6016385 6016415 30401us
932 1:466 16:4447 0 6016416 6016445 29305us
结果解析:
index:表示任务的索引编号,用于标识不同的任务。
id:hwid:表示任务的 ID 和硬件 ID。
group:表示任务所属的组。
prio:表示任务的优先级。
s_time:表示任务的开始时间( Start Time),单位是系统的时间单位( us)。
e_time:表示任务的结束时间( End Time),单位是系统的时间单位( us)。
r_time:表示任务的运行时间( Run Time),单位是系统的时间单位( us)。
设置 BPU 频率
命令:
hrut_bpuprofile -b 0 -f 500000000
功能:
设置 BPU 核心 0 的工作频率为 500 MHz。
打印输出:
current bpu[0] frequency:500000000
验证方法:
在 /app/platform_samples/chip_base_test/01_cpu_bpu_ddr/ 路径下运行 cpu_bpu_ddr 压测脚本,使用方式跳转至 CPU_BPU_DDR_STRESS,使用该命令设置 BPU 频率后,运行压测脚本输出如下:
root@buildroot:/userdata/01_cpu_bpu_ddr/scripts# ./stress_test.sh
Running stress test with the following configuration:
Stress Time: 48h hours (172800 seconds)
Memory Size: 100 MB
I/O Threads: 4
BPU Core: 0
BPU Portion: 100%
Output directory: /userdata/log
Starting CPU stress test...
nohup: redirecting stderr to stdout
Starting BPU stress test...
=====================1=====================
temperature-->
DDR : 61.7 (C)
75759
cat: /sys/class/hwmon/hwmon0/temp2_input: Connection timed out
BPU : 0.0 (C)
CPU : 62.6 (C)
cpu frequency-->
min(M) cur(M) max(M)
cpu0: 300 1500 1500
cpu1: 300 1500 1500
cpu2: 300 1500 1500
cpu3: 300 1500 1500
cpu4: 300 1500 1500
cpu5: 300 1500 1500
cpu6: 300 1500 1500
cpu7: 300 1500 1500
bpu status information---->
min(M) cur(M) max(M) ratio
bpu0: 500 500 1000 99
ddr frequency information---->
min(M) cur(M) max(M)
ddr: 266 4266 4266
GPU gc8000 frequency information---->
min(M) cur(M) max(M)
gc8000: 200 1000 1000
可以看到 BPU 当前的默认频率由 1000 MHz 变为了 500 MHz,同理,查看 BPU 使用率该方式也同样适用。
命令:
hrut_bpuprofile -b 0 -f 1000000000
功能:
设置 BPU 核心 0 的工作频率为 1000 MHz。
打印输出:
current bpu[0] frequency:996000000
注意:
由于分频系数限制,无法精确生成 1000MHZ。
设置 BPU 使用率显示
命令:
hrut_bpuprofile -b 0 -r 5
功能:
设置 BPU0 的使用率输出为 5 次。
打印输出:
root@buildroot:/userdata# hrut_bpuprofile -b 0 -r 5
BPU RATIO FREE QUEUE
0 100% 1023
结果解析:
BPU:表示当前操作的 BPU 核心编号,这里是 0 ,即 bpu0 。
RATIO:表示当前 BPU 核心的使用率。
FREE QUEUE:表示当前 BPU 核心的空闲队列数量,空闲队列数量通常反映了 BPU 的当前负载情况。
显示帮助信息
命令:
hrut_bpuprofile -h
功能:
显示帮助信息,解释命令的使用方法。
打印输出:
BPU PROFILE HELP INFORMATION
>>> -b/--bpu [BPU CORE,0--bpu0] (required)
>>> -p/--power [POWER OFF/ON,0--OFF,1--ON]
>>> -c/--clock [CLOCK OFF/ON,0--OFF,1--ON]
>>> -t/--time [GET FC TIME,NO ARGUMENT]
>>> -f/--frq [SET BPU FREQUENCY,ARGUMENT:N]
>>> -r/--ratio [BPU RATIO,N--N TIMES,0--FOREVER]