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

征程 6 BPU trace 简介与实操

一、BPU trace 理论基础

在学习 BPU trace 前,希望大家对 UCP trace 已经有简单的了解,详情可见工具链用户手册《统一计算平台(UCP)-UCP 性能分析工具-UCP Trace 使用说明》章节。

1.1 BPU Trace 配置文件模板

在 system 模式下抓取 BPU trace,需在 perfetto 配置文件中加入 BPU trace 的数据源,ucp_bpu_trace.cfg 中已默认添加了 BPU trace 数据源,具体配置项如下所示:

# BPU trace
data_sources: {config {name: "linux.sys_stats"sys_stats_config {bputrace_period_ms: 500# bpuinfo_period_ms: 500}}
}

bputrace_period_ms 用于设置读取 BPU trace 的周期,可根据实际使用场景调整该参数,当 BPU 负载较大时,可以适当缩短读取周期,避免发生因读写速度不匹配导致的 trace 数据被覆盖的问题。

当前 BPU Trace 功能暂不支持运行时动态开启,若需在应用运行期间实时捕获 BPU Trace 数据,需在应用启动前通过命令手动开启该功能,具体操作指令为:echo 1 > /sys/devices/system/bpu/bpu0/trace

补充:配置时出现 Invalid argument,可能的原因:bpu trace 只支持在 power_enable 为 0 时设置,需要在 tracebox perfetto 终端(先继续阅读) 先把这个节点修改为 0。可参考如下方式修改

root@hobot:/map/xxx/inner# echo 1 > /sys/devices/system/bpu/bpu0/trace
-bash: echo: write error: Invalid argument
root@hobot:/map/xxx/inner# cat /sys/devices/system/bpu/bpu0/power_enable
1
root@hobot:/map/xxx/inner# echo 0 > /sys/devices/system/bpu/bpu0/power_enable
root@hobot:/map/xxx/inner# cat /sys/devices/system/bpu/bpu0/power_enable
0
root@hobot:/map/xxx/inner# echo 1 > /sys/devices/system/bpu/bpu0/trace
root@hobot:/map/xxx/inner# 

1.2 常用数据源介绍

Description

二、BPU trace 使用基础示例

2.1 基础示例运行

  • 终端 A
# 启动 trace 服务。
# 只需要启动一次,如果已经启动,则不需要再次启动。
tracebox traced --background# 运行数据捕获服务。
# 只需要启动一次,如果已经启动,则不需要再次启动。
tracebox traced_probes --background --reset-ftrace# -c:指定perfetto 配置文件。
# -o:指定输出trace数据文件路径。
tracebox perfetto --txt -c ucp_bpu_trace.cfg -o ucp.pftrace
  • 终端 B
export HB_UCP_PERFETTO_CONFIG_PATH=ucp_system.json
export HB_UCP_ENABLE_PERFETTO=true

新建 run.sh,内容如下

hrt_model_exec perf --model_file xxx.hbm --frame_count 50 --thread_num 1 &
hrt_model_exec perf --model_file ***.hbm --frame_count 10 --thread_num 1

运行 run.sh

为了能够抓取完整的数据,需要确保 hrt_model_exec 执行结束前,perfetto 进程未退出,即终端 B 任务先结束。

2.2 BPU Trace 文件解读

使用官方的 Perfetto UI 打开 ucp_traceprocessor 处理后的 ucp_new.pftrace,展示从 UCP 模型推理任务的创建,提交,调度执行,直至任务完成执行并最终释放的完整流程。

Description

bpu_trace 和 ucp_trace 进行了关联。

三、进阶内容

3.1 偶发推理问题如何 trace

问题描述:长稳测试时,偶发某问题,复现概率很低,希望在出现该问题前后,能抓到现场的 trace info,应该如何进行?

处理建议:

  1. 对于不知何时触发问题的长稳测试场景,需要开启环境变量 HB_UCP_ENABLE_PERFETTO,执行 perfetto 命令,将 duration_ms 设置为 0 进行持续抓取 trace。
  2. 通过设置 ucp_system.cfg 中 buffers 的 fill_policy: RING_BUFFER,实现新数据对旧数据的 buffer 覆盖。
  3. ucp_system.cfg 配置信息如下所示,注意,buffer 的大小,需要根据用户实际场景先验证下,根据实际情况调整。
# Sampling duration: 单位是ms,0表示持续抓取
duration_ms: 0write_into_file: true    # 按照设定的周期,将buffer写入到文件
# Writes the userspace buffer into the file every 2.5 seconds.
file_write_period_ms: 2500    # 控制buffer写文件,不是覆盖,相当于控制落盘,这个参数一般不需要特别指定# buffer 0
buffers {size_kb: 65536    # 如果出现数据丢失,则设置更大一些fill_policy: RING_BUFFER
}# buffer 1
buffers {size_kb: 131072    # 如果出现数据丢失,则设置更大一些fill_policy: RING_BUFFER
}# UCP data source
data_sources: {config {name: "track_event"target_buffer: 0track_event_config {enabled_categories: "dnn"}}
}

3.2 BPU_LB_Schedule 线程简介

问:ucp 中 bpu_lb_schedule 线程的作用是什么?线程数是多少?

Description

答:BPU_LB_Schedule 只有 1 个线程,负责 bpu 任务调度。

BPU-LB_schedule 只有一个,如果有多个核,会根据核的数量启动 BPU-Worker 线程,单核就不启动。


问:bpu 调度线程优先级能否提高,优先保证模型 infer 完成?

答:可以提高,BPU-LB_schedule 是负责下发 bpu 任务的线程,需要占用 CPU 资源。

通过 HB_UCP_SCHEDULE_PRIORITY 环境变量控制。默认为 1,数值越大,优先级越高。BPU 的调度线程是 FIFO。

Description

3.3 CPU-OP-Processe 线程简介

问:ucp 中 CPU-OP-Processe 线程的作用是什么?线程数是多少?

答:CPU-OP-Processe 线程负责 cpu 算子计算。

征程 6E 上 CPU-OP-Processe 线程默认有 6 个,CPU-OP-Processe 是根据 CPU 核的数量来启动线程,可以通过 HB_UCP_ENABLE_CPU_BACKEND_CORE_NUM 环境变量来设置数量。

在 hbm 模型中没有 CPU 算子时,trace 示意图如下:

Description

里面是没有 CPU-OP-Processe 线程的。


问:异构模型中(bpu+cpu),cpu 算子如何分发?通过 bpu_lb_schedule 还是唤醒 cpu_op_procese 线程?

答:有 task_schedule,bpu 任务结束后,通过 task_schedule 进行 cpu 算子分发。没有 CPU 调度线程,CPU-OP-Process 就是用于运行 cpu 算子,优先级是写死的 0,也就是非 FIFO。

http://www.dtcms.com/a/488607.html

相关文章:

  • 保险网站推荐app软件下载安装到手机
  • 网站建好了 怎么建后台网站发布系统
  • 永川做网站的公司罗定市建设局网站
  • 网站编辑的岗位职责请问有重庆有做网站吗
  • WordPress怎么文章分类百度搜索seo
  • 衡水做阿里巴巴网站网站开发算法
  • 5站合一 网站建设软件开发外包要多少钱
  • 佛山网站建设找哪家安卓开发需要学什么
  • 怎么免费建立自己的网站学习php做毕设网站方向
  • 做网站用哪个软件好中文网站模板
  • Day72:10.15:leetcode 二叉树20道题,用时3h30min
  • 企业网站推广方案设计网站页面链接怎么做的
  • 网站站内推广计划书门户网站建设管理
  • 做异形建筑的网站荆州房地产网站建设
  • 学校网站开发系统的背景wordpress米课
  • 着陆页制作网站简单网页制作素材
  • kfifo
  • 广州天河区网站建设怎么地wordpress
  • wordpress网站被拒登企业官网招聘
  • 【时时三省】(C语言基础)用格式化的方式读写文本文件
  • 国外 网站 模板广州建站哪个济南兴田德润实惠吗
  • 网站快速收录工具医疗器械类网站icp备案前置审批
  • 济南 网站推广制作公司网站设计要求
  • 曲靖网站微信建设百度指数分析数据
  • 遵义专业网站建设公司电话前端代码大全
  • 上海注册公司多久义乌网站建设优化排名
  • 网站上做百度广告赚钱么泰安人才网招聘网
  • 从零开始读懂Transformer:架构解析与PyTorch实现
  • 网站备案核验单酒店网站制作策划
  • 宁夏建设厅网站领导做平台网站要什么条件