征程 6 | BPU trace 簡介與實操
一、BPU trace 理論基礎
1.1 BPU Trace 配置文件模板
# BPU trace
data_sources: {
config {
name: "linux.sys_stats"
sys_stats_config {
bputrace_period_ms: 500
# bpuinfo_period_ms: 500
}
}
}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 常用數據源介紹
二、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
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
2.2 BPU Trace 文件解讀
三、進階內容
3.1 偶發推理問題如何 trace
# Sampling duration: 單位是ms,0表示持續抓取
duration_ms: 0
write_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: 0
track_event_config {
enabled_categories: "dnn"
}
}
}3.2 BPU_LB_Schedule 線程簡介
3.3 CPU-OP-Processe 線程簡介
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。











