文件最后提交记录最后更新时间
支持解析launchKernel接口上报额外的profiling信息 Co-authored-by: xfeng<zchlcw663@163.com> # message auto-generated for no-merge-commit merge: !252 merge main into master 支持解析launchKernel接口上报额外的profiling信息 Created-by: zyb_230 Commit-by: xfeng Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 数据结构更改,runtime上通过修改数据结构上报额外的profiling信息。 ``` struct MsporfKernelInfo { uint16_t numBlocks; uint16_t argsSize; uint8_t ratio : 3; uint8_t schedMode : 2; uint8_t rsv : 3; uint8_t reserved[11]; }; struct MsprofDim3 { uint16_t x; uint16_t y; uint16_t z; }; struct MsprofSimtKernelInfo { MsprofDim3 gridDim; MsprofDim3 blockDim; uint16_t argsSize; uint8_t schedMode: 2; uint8_t rsv: 6; uint8_t reserved; }; struct MsprofRuntimeTrack { // for MsprofReportCompactInfo buffer data uint16_t deviceId; uint16_t streamId; uint32_t taskId; uint64_t taskType; // task message hash id uint64_t kernelName; // kernelname hash id union { struct MsporfKernelInfo kernelInfo; struct MsprofSimtKernelInfo simtKernelInfo; } extInfo; }; ``` - **修改内容:** - prof_common.h里面增加数据结构定义 - 分析树的时候,HostTask有个op指针,里面包含算子描述信息,带上runtime层的: ``` struct OpDesc { std::shared_ptr<MsprofCompactInfo> nodeDesc = nullptr; std::shared_ptr<MsprofCompactInfo> nodeAttr = nullptr; std::shared_ptr<MsprofCompactInfo> runtimeTrackDesc = nullptr; //新增 std::shared_ptr<ConcatTensorInfo> tensorDesc = nullptr; std::shared_ptr<MsprofAdditionalInfo> ctxId = nullptr; }; ``` - 分析树的时候,除了计算、通信、还有其他,这个其他的有一种白名单可以判断也是计算算子,这里也要带上SIMT类型 - cann落盘db的时候,增加新数据结构的处理: 根据dataLen字段可以保持兼容性;计算block_dim和mix_block_dim;ge_info.db的TaskInfo表新增两列:gridDim和blockDim - json导出的时候根据数据类型是否是SIMT做额外的处理 - db导出COMPUTE_TASK_INFO表新增两列gridDim和blockDim ---- ## 2. 功能验证 - [ ] **功能自验** ascend c simt: ![image.png](https://raw.gitcode.com/user-images/assets/8551954/ceff0654-6f45-4999-bf3a-5bf5eb03c63d/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/8551954/3ce5a917-d1ee-475a-bd87-26d965f33bb4/image.png 'image.png') ascend c非simt ![image.png](https://raw.gitcode.com/user-images/assets/8551954/8051eb3f-804b-4e54-a2b5-829fb4f7c3d0/image.png 'image.png') kernelLaunch直调: ![image.png](https://raw.gitcode.com/user-images/assets/8551954/394a79a6-1f1a-4aa1-afd1-8d4f7ea50660/image.png 'image.png') - [x] **本地自验用例截图** **已经在测试冒烟上进行验证,db校验那里到时候需要改一下校验,新增了两列!** - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!2521 天前
fix mstx data analysis err in acl graph scene Co-authored-by: mei-feiyao<meifeiyao@h-partners.com> # message auto-generated for no-merge-commit merge: !261 merge tagid into master fix mstx data analysis err in acl graph scene Created-by: mei-feiyao Commit-by: mei-feiyao Merged-by: ascend-robot Description: # 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](https://raw.gitcode.com/user-images/assets/8551954/0ecf9972-7196-42bc-9430-e93f61473e09/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/8551954/d7927382-fabf-4f7e-a949-5696e87a68f7/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/8551954/11452d61-df5e-48fe-a2c2-dd4fc2497471/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. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!26118 小时前
[msprof-master]out分支同步到master分支 Co-authored-by: yu-liang-bin<y1416490440@163.com> 5 个月前
clean code for msprof Co-authored-by: panzhaohu<panzhaohu1@h-partners.com> # message auto-generated for no-merge-commit merge: !128 merge 0318_master into master clean code for msprof Created-by: panzhaohu Commit-by: panzhaohu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 清理蓝区cleancode - **修改内容:** 1.G.CNS.03-CPP 对于不会修改成员变量的成员函数应使用const修饰 2.G.INC.02-CPP 禁止包含用不到的头文件 3.G.EXP.36-CPP 控制表达式的结果应是布尔值 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++: - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++: - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!1282 个月前
[msprof-master]out分支同步到master分支 Co-authored-by: yu-liang-bin<y1416490440@163.com> 5 个月前
[msprof-master]out分支同步到master分支 Co-authored-by: yu-liang-bin<y1416490440@163.com> 5 个月前
支持解析launchKernel接口上报额外的profiling信息 Co-authored-by: xfeng<zchlcw663@163.com> # message auto-generated for no-merge-commit merge: !252 merge main into master 支持解析launchKernel接口上报额外的profiling信息 Created-by: zyb_230 Commit-by: xfeng Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 数据结构更改,runtime上通过修改数据结构上报额外的profiling信息。 ``` struct MsporfKernelInfo { uint16_t numBlocks; uint16_t argsSize; uint8_t ratio : 3; uint8_t schedMode : 2; uint8_t rsv : 3; uint8_t reserved[11]; }; struct MsprofDim3 { uint16_t x; uint16_t y; uint16_t z; }; struct MsprofSimtKernelInfo { MsprofDim3 gridDim; MsprofDim3 blockDim; uint16_t argsSize; uint8_t schedMode: 2; uint8_t rsv: 6; uint8_t reserved; }; struct MsprofRuntimeTrack { // for MsprofReportCompactInfo buffer data uint16_t deviceId; uint16_t streamId; uint32_t taskId; uint64_t taskType; // task message hash id uint64_t kernelName; // kernelname hash id union { struct MsporfKernelInfo kernelInfo; struct MsprofSimtKernelInfo simtKernelInfo; } extInfo; }; ``` - **修改内容:** - prof_common.h里面增加数据结构定义 - 分析树的时候,HostTask有个op指针,里面包含算子描述信息,带上runtime层的: ``` struct OpDesc { std::shared_ptr<MsprofCompactInfo> nodeDesc = nullptr; std::shared_ptr<MsprofCompactInfo> nodeAttr = nullptr; std::shared_ptr<MsprofCompactInfo> runtimeTrackDesc = nullptr; //新增 std::shared_ptr<ConcatTensorInfo> tensorDesc = nullptr; std::shared_ptr<MsprofAdditionalInfo> ctxId = nullptr; }; ``` - 分析树的时候,除了计算、通信、还有其他,这个其他的有一种白名单可以判断也是计算算子,这里也要带上SIMT类型 - cann落盘db的时候,增加新数据结构的处理: 根据dataLen字段可以保持兼容性;计算block_dim和mix_block_dim;ge_info.db的TaskInfo表新增两列:gridDim和blockDim - json导出的时候根据数据类型是否是SIMT做额外的处理 - db导出COMPUTE_TASK_INFO表新增两列gridDim和blockDim ---- ## 2. 功能验证 - [ ] **功能自验** ascend c simt: ![image.png](https://raw.gitcode.com/user-images/assets/8551954/ceff0654-6f45-4999-bf3a-5bf5eb03c63d/image.png 'image.png') ![image.png](https://raw.gitcode.com/user-images/assets/8551954/3ce5a917-d1ee-475a-bd87-26d965f33bb4/image.png 'image.png') ascend c非simt ![image.png](https://raw.gitcode.com/user-images/assets/8551954/8051eb3f-804b-4e54-a2b5-829fb4f7c3d0/image.png 'image.png') kernelLaunch直调: ![image.png](https://raw.gitcode.com/user-images/assets/8551954/394a79a6-1f1a-4aa1-afd1-8d4f7ea50660/image.png 'image.png') - [x] **本地自验用例截图** **已经在测试冒烟上进行验证,db校验那里到时候需要改一下校验,新增了两列!** - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!2521 天前
[msprof-master]out分支同步到master分支 Co-authored-by: yu-liang-bin<y1416490440@163.com> 5 个月前