BPU 驱动 sysfs 调试接口
BPU sysfs 节点说明
/sys/devices/system/bpu

各个文件节点可以使用“cat”命令获取信息,“echo”命令设置。具体内容如下:
- bpu*:目录,bpu0,bpu1 分别对应 bpu 的两个核,每个目录内的节点设置如下:

-
burst_len:读写文件,该 Core 核心对应的 burst_len
-
hotplug:读写文件,该 Core 核心热拔插是否开启:
- 0:关闭;
- 1:开启;
-
power_enable:读写文件,该 Core 核心开关,用于开启/关闭对应 BPU 核心硬件电源;
-
devfreq:读写文件,用于读取/设置该 Core 核心频率:
-
以 BPU0 为例,将调频策略设为 userspace
echo userspace > /sys/devices/system/bpu/bpu0/devfreq/devfreq*/governor -
查看 BPU 支持频率:
cat /sys/devices/system/bpu/bpu0/devfreq/devfreq*/available_frequencies -
设置 BPU 为目标频率,目标频率需要被 BPU 支持:
echo 600000000 > /sys/devices/system/bpu/bpu0/devfreq/devfreq*/userspace/set_freq -
确认被设置的频率:
cat /sys/devices/system/bpu/bpu0/devfreq/devfreq*/cur_freq
-
-
limit:读写文件,用于设置该 Core 核心硬件相关的缓冲数量,默认值为 0,任何大于 0 的值为实际数量,与优先级相关,越小的正值优先级越高, 该任务越早被调度执行,但是任务切换的效率会对应降低。请用户根据实际情况设置;
-
power_level:读写文件,用于设置该 Core 核心工作的功率级别(包括工作电源及频率):
- 1:linux dvf 动态调节
- 0:性能优先,最高功耗
- < 0:在范围内,值越小,功耗等级越低。
-
users:只读文件,用于获取使用该 Core 的用户信息。详细信息请参考下文 users 一项;
-
queue:只读文件,获取驱动当前可设置的 FunctionCall 数量;

- ratio:只读文件,获取该 Core 核心的使用率信息;

- fc_time:获取该 Core 上处理过的 fc 任务信息,对应每一个任务有如下子项:

- index:该任务位于 BPU 硬件 FIFO 中的位置
- id:用户设置的中断 id
- hwid:底层驱动维护的中断 id
- group:用户设置的组 id,用户进程号
- prio:任务优先级
- s_time:任务处理开始的时间戳
- e_time:任务处理结束的时间戳
- r_time:任务被处理的总耗时
- core_num:只读文件,BPU 中核心 Core 的数量
- group:只读文件,运行在 BPU 上的任务组信息。通过“cat group”可得:

- group:用户设置的组 id 和进程号;
- prop:用户设置的比例值
- ratio:当前实际的运行占用率
- ratio:只读文件,当前 BPU 的使用率
- users:只读文件,当前使用 BPU 的用户信息,用户会被归类为通过 BPU 框架设置任务的用户和指定各个 Core 设置任务的用户。通过“cat users”可得:

- user:用户进程号
- ratio:该用户对应 Core 上的占用率
使用示例
下文所有案例均已 BPU0 为目标,所有命令可以在运行模型应用后执行。
关闭 BPU Core
执行以下命令:
echo 0 > /sys/devices/system/bpu/bpu0/power_enable