已合并
fix mstx data analysis err in acl graph scene #261
mei-feiyao创建于 5月30日
fix mstx data analysis err in acl graph scene #261
已合并
mei-feiyao创建于 5月30日
mei-feiyao
mei-feiyao成员
5月30日

PR 合入模板

注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。


1. 修改描述

  • 修改原因:
    1.aclgraph场景,在capture的阶段内调用mstx打点接口进行打点的话,打点的task会被捕捉到图里。当该图多次replay时,会多次执行相同的打点task,最终采集到的device打点数据里index_id字段也会重复;
    2.解析device打点数据的逻辑未适配该场景,最终解析时使用相同index_id的最早打点时间作为开始时间,使用最晚打点时间作为结束时间,最终呈现的device打点耗时错误。
  • 修改内容:
    1.cann 9.1.0以后,mark打点tag id是11,range打点tag id是12,增加方法判断数据对应的cann版本信息;
    2.修改解析逻辑,判断是9.1.0以后的cann,将相同index_id的打点数据按时间排序后,每两个匹配,作为一段打点的开始和结束打点;否则保持之前的逻辑
    3.生成tx.csv时,以前只会生成相同mark id里的最后一条数据,现在修复保留并生成所有的打点数据
    4.C化部分修改device tx数据的处理逻辑,对于tagid是11的数据直接保存,对于tagid是12的数据先按index id和timestamp排序,再两两配对,拼接成range

2. 功能验证

  • 功能自验
    image.png
    image.png
    image.png

  • 本地自验用例截图

  • 冒烟是否通过 (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟)


3. 分支合并要求

  • 代码合并(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。)

3. 代码检视

  • 要求:

    • 合入代码超过 200 行,需三人以上会议检视。
    • 检视密度≥1个/100行。
    • 检视缺陷密度未达要求需提供说明。
    • 大于 1000 行代码原则上不允许合入,需进行备案。
  • 是否经过代码检视

  • 是否具备 UT 测试用例看护 (如不符合,请说明原因:____________________)

  • 检视意见数:____ 条 (请填写本次检视的意见总数,用于commit合入前审视)


4. 安全自检

Python、C++

  • 对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格
  • 不允许私有的文件操作,需要使用公共模块的安全函数
  • 任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留
  • 数组访问需要校验越界场景,对除法需要做除零校验
  • 需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验
  • 需要充分进行接口输入和返回值异常情况的校验
  • 日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息

C++

  • 指针使用前需要判空
  • 数值计算校验溢出和反转
  • 不可存在内存泄漏(异常场景需要释放内存)
  • 类型转换不能出现数据截断
  • 拷贝字符串时,目的缓冲区至少比源缓冲区大 1
  • 拷贝内存时,目的缓冲区不小于源缓冲区
  • 内存释放后指针赋值为 nullptr

5. 变更知会

  • 资料修改
  • 变更通知(消息知会 + 邮件知会)

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 mei-feiyao 的贡献)
ascend-robotascend-robot成员
5月30日 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
5月30日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-Ascend/msprof fanhong, eejiechu (2/2) fanhong (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

mei-feiyao, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
mei-feiyaomei-feiyao成员
5月30日 修改了pull request 的描述
mei-feiyao
mei-feiyao成员
5月30日 评论:

compile

likedislike
此处折叠了249条消息 查看更多
ascend-robot
ascend-robot成员
6月3日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
Wangang Yu
Wangang Yu成员6月3日进行代码检视1
analysis/csrc/domain/data_process/ai_task/msproftx_device_processor.cpp
@@ -135,0 +234,4 @@
234+ if (idx + 1 >= total || std::get<1>(oriData[idx + 1]) != currIndexId)
235+ {
236+ idx++;
237+ WARN("Unpaired range data with index_id % for device id %.", currIndexId, deviceId);
Wangang Yu
Wangang Yu6月3日评论:

[review]
问题:WARN 日志格式字符串为 "Unpaired range data with index_id % for device id %.",占位符不完整。
影响:日志可能无法正确打印 currIndexId 和 deviceId,甚至在部分日志宏实现下出现格式化异常。
建议:根据项目日志宏格式修正占位符,例如 printf 风格应写为:
WARN("Unpaired range data with index_id %u for device id %u.", currIndexId, deviceId);
如果项目使用 fmt 风格,则写为:
WARN("Unpaired range data with index_id {} for device id {}.", currIndexId, deviceId);

likedislike
ascend-robot
ascend-robot成员
6月3日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
Wangang Yu
Wangang Yu成员6月3日进行代码检视1
analysis/csrc/domain/data_process/ai_task/msproftx_device_processor.cpp
@@ -133,0 +251,4 @@
251+ // range end time
252+ uint64_t startSecond = std::get<4>(rowSecond);
253+ HPFloat tsSecond = Utils::GetTimeFromSyscnt(startSecond, params);
254+ uint64_t timeSecond = GetLocalTime(tsSecond, record).Uint64();
Wangang Yu
Wangang Yu6月3日评论:

[review]
问题:duration 使用 timeSecond - timeFirst 计算,但没有校验 timeSecond >= timeFirst。
影响:如果时间换算异常、数据乱序或 end 早于 start,uint64_t 相减会发生下溢,得到一个非常大的 duration,影响后续展示和分析。
建议:计算前增加判断:
if (timeSecond < timeFirst) {
WARN(...);
idx += 2;
continue;
}
或者将该条数据标记为异常。

likedislike
ascend-robot
ascend-robot成员
6月3日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike