鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

使用KUPL PROF进行全量的函数时序统计

KUPL对外提供profile和trace两个工具,来提供运行时的时序统计,通过动态链接到prof对应的动态链接库来使能profile和trace功能。

  1. 节点上安装HPCkit,HPCKit安装指导请参见《Kunpeng HPCKit 25.2.0 安装指南》
  2. 通过setvars.sh --kupl_mode=prof链接到prof动态链接库。
  3. 运行程序时额外配置环境变量KUPL_PROF_LEVEL=statistic来开启特定的函数累计计时,KUPL_PROF_LEVEL=trace来开启全量的函数时序统计。
  4. 程序运行结束时,如果配置了KUPL_PROF_LEVEL=statistic或 KUPL_PROF_LEVEL=trace则会在程序运行打印结尾生成函数累计计时profile报告(报告表头字段详情见表1 函数累计计时profile报告的表头字段说明),如果配置了KUPL_PROF_LEVEL=trace还可以在程序运行目录下生成ptrace文件,其中包含各个进程中各个线程运行情况的统计文件(以.json文件保存),该文件可以通过chrome://tracing网页(请使用chrome 94以上版本的Chrome浏览器运行)来观看可视化版本报告(即把想要观看的文件导入进网页)。
    表1 函数累计计时profile报告的表头字段说明

    信息名称

    描述

    thread_id

    执行线程id

    msg_id

    函数信息号

    msg

    函数信息名称

    sum(ms)

    函数总耗时(毫秒)

    count

    函数执行次数

    avg(ns)

    函数平均耗时(纳秒)

    max(ns)

    函数单次最大耗时(纳秒)

    min(ns)

    函数单词最小耗时(纳秒)

    表2 函数累计计时profile报告的msg字段支持种类含义说明

    msg信息名称

    函数行为

    task_execute

    提交给KUPL的任务执行耗时

    task_finish

    提交给KUPL的任务执行完毕后释放资源耗时

    sched_add_taskbase

    向KUPL底层Sched中提交任务耗时

    sched_get_taskbase

    从KUPL底层Sched中获取任务耗时

    通过网页观看可视化版本报告建议使用Chrome浏览器。