S100 OpenExplorer

# #hrt_ucp_monitor 工具介绍

`hrt_ucp_monitor` 是一个监控硬件 IP 占用率和内存信息的工具，在使用UCP提交任务时，可以指定任务部署的后端（Backend），这些后端与本文档中的硬件IP相对应。

`hrt_ucp_monitor` 工具位于 horizon_j6_open_explorer 发布物的以下路径中：

- Linux 系统：`samples/ucp_tutorial/tools`
- QNX 系统：`samples/ucp_tutorial/deps_qnx/ucp/bin`

其目录结构如下：

`└── monitor ├── hrt_ucp_monitor # monitor工具`

您可以通过 DEB部署包 的方式将`hrt_ucp_monitor`部署到开发板上，也可以单独将 `hrt_ucp_monitor` 拷贝到开发板上使用。如果`hrt_ucp_monitor`不在 `PATH` 环境变量所指定的路径中，您需要手动指定工具的路径，比如在工具目录下执行 `./hrt_ucp_monitor`，如果提示没有执行权限，可先执行 `chmod +x ./hrt_ucp_monitor`.

## #支持范围

支持的 IP 包括BPU，DSP，GDC，STITCH，PYM，ISP，VPU(Video Processing Unit) 和 JPU。

支持的内存信息包括DDR读写带宽，ION内存，进程内存。

## #使用方法

运行 `hrt_ucp_monitor -h` 或`hrt_ucp_monitor --help` 获取工具的使用详情如下所示：

`Usage: hrt_ucp_monitor [Option...] [Parameter] [Option] [Instruction] --------------------------------------------------------------------------------------------------------------- -h --help Display this information -v --verbose Show additional information -V --version Output version information & exit [Option] [Parameter] --------------------------------------------------------------------------------------------------------------- -b --batch [null] : Run in non-interactive batch mode, default is interactive mode. -d --delay [int] : Delay between updates in milliseconds, default is 1000 ms. parameter range: [100, 10000]. -f --freq [int] : Sampling frequency, default is 500 samples/sec, only used for BPU and DSP. parameter range: [10, 1000]. -n --number [int] : Specifies the maximum number of iterations, default is forever. parameter range: [1, INT32_MAX]. -t --time [int] : Specifies the duration time in seconds, default is forever. parameter range: [1, INT32_MAX]. -e --enable [string]: Hardware IP to be monitored, valid values are "bpu, dsp, gdc, stitch, pym, isp, jpu, vpu", case insensitive. Multiple parameters are separated by comma.`

在 `hrt_ucp_monitor` 的运行过程中，您可以按键盘的`Q`或执行`CTRL+C`提前退出。

## #参数说明

参数 | 数据类型 | 参数说明 | 关联参数
`-h, --help` | 无。 | 显示帮助信息。 | 无。
`-v, --version` | 无。 | 显示版本信息。 | 无。
`-v, --verbose` | string | 用于显示 `hrt_ucp_monitor` 运行过程中更详细的日志信息，比如工具使用的参数。 | 无。
`-b, --batch` | null | 指定以非交互的批处理模式运行, 默认为交互模式。 | 无。
`-d, --delay` | int | 指定占用率更新间隔，单位毫秒，默认为 1000 毫秒，有效范围为[100, 10000]。如果设置的时间不在有效范围内，将设置失败，并打印错误提示信息。 | 无。
`-f, --freq` | int | 指定采样频率，默认为每秒采样 500 次，仅适用于 BPU 和 DSP，用于控制硬件 IP 状态采样频率。 当前支持的范围是[10,1000]，即最少每秒采样 10 次，最多每秒采样 1000 次。 由于占用率的统计方式不同，其他硬件 IP，比如 GDC，STITCH 不需要设置采样频率，当设置刷新时间时，会获取指定周期内的占用率数据。 | 无。
`-n, --number` | int | 指定占用率的刷新次数，有效范围为[1, INT32_MAX]。用于指定硬件 IP 占用率最大刷新次数，当刷新次数到达最大刷新次数后，`hrt_ucp_monitor` 工具会自动退出，同时您可以按 `CTRL+C` 提前退出。 | 设置此参数，则不能设置 `-t, --time` 参数。 如果同时设置，将提示错误信息。
`-t, --time` | int | 指定工具运行时间，单位秒，有效范围为[1, INT32_MAX]。 在 `hrt_ucp_monitor` 中会根据刷新时间计算最大刷新次数，当刷新次数到达最大刷新次数后，`hrt_ucp_monitor` 会自动退出，同时您可以按 `CTRL+C` 提前退出。 | 设置此参数，则不能设置 `-n, --number` 参数。 如果同时设置，将提示错误信息。
`-e, --enable` | string | 指定需要监控的 IP，这样可以只监控关心的数据，降低工具的 CPU 占用率。 有效值为`bpu`, `dsp`, `gdc`, `stitch`, `pym`, `isp`, `jpu`, `vpu`，不区分大小写，多个参数通过逗号隔开。 | 无。

## #使用示例

### #不指定参数，使用默认参数运行

运行`hrt_ucp_monitor`时，如果不指定参数，则使用默认参数运行。默认开启所有硬件IP监控，以交互模式运行， BPU 和 DSP 每秒采样 500 次，硬件 IP 占用率每 1000ms 刷新一次。

`hrt_ucp_monitor`

### #使用`batch`参数进行批处理

批处理模式下，不支持接收按键操作，`hrt_ucp_monitor` 每次刷新数据都将换行重新输出，适用于将数据重定向到文件。

#### #在终端输出结果

`hrt_ucp_monitor -b`

#### #重定向输出到文件

`hrt_ucp_monitor -b > ucp_monitor.txt`

### #使用`delay`参数设置刷新时间

刷新时间设置为 3 秒，表示每 3 秒刷新一次占用率数据。

`hrt_ucp_monitor -d 3000`

### #使用`freq`参数设置周期采样次数

设置 BPU 和 DSP 的 Busy 状态的采样周期为每秒采样 100 次。

`hrt_ucp_monitor -f 100`

### #使用`number`参数设置最大刷新次数

`hrt_ucp_monitor -n 2 # 交互模式 hrt_ucp_monitor -b -n 2 # 批处理模式`

### #使用`time`参数设置刷新时间

工具默认刷新时间为 1s，设置运行 10s 后退出。

`hrt_ucp_monitor -t 10`

### #使用`enable`参数输出 BPU 的占用率数据

工具将只输出 BPU 的占用率数据。

`hrt_ucp_monitor -e bpu`

### #使用`verbose`参数获取日志信息

用于显示 hrt_ucp_monitor 运行过程中更详细的日志信息，比如工具使用的参数。

`hrt_ucp_monitor -v`
页面目录