MindStudio Profiler(msProf,模型调优工具)提供了AI任务运行性能数据、昇腾AI处理器系统数据等性能数据的采集和解析功能,这些功能侧重不同的训练或推理场景,可以定位模型训练或推理中的性能问题。
| Files | Last commit | Last update |
|---|---|---|
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
gitcode流水线代码化陪跑 Co-authored-by: hwstaff_mindstudio<lguanchi9@163.com> # message auto-generated for no-merge-commit merge: !464 merge master into master gitcode流水线代码化陪跑 Created-by: A1streomeria Commit-by: hwstaff_mindstudio Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 新增gitcode代码化流水线陪跑 https://gitcode.com/Ascend/msprof/issues/153 - **修改内容:** .gitcode 中的配置文件以及actions的配置文件 ---- ## 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!464 | 14 days ago | |
修复devcontainer跑test报错 Co-authored-by: hehongzhe<935062458@qq.com> # message auto-generated for no-merge-commit merge: !475 merge fixdev into master 修复devcontainer跑test报错 Created-by: hhz0 Commit-by: hehongzhe Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 跑test的指令使用了local参数,这会让直接执行test时找不到依赖 https://gitcode.com/Ascend/msprof/issues/157 - **修改内容:** 去除local参数 ---- ## 2. 功能验证 - [x] **功能自验** - [x] **本地自验用例截图** - [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!475 | 11 days ago | |
ccu c++ parser for host && device | 2 days ago | |
[fix]修复编译msprof整包报错问题 Co-authored-by: yuliangbin<y1416490440@163.com> # message auto-generated for no-merge-commit merge: !354 merge fix_build into master [fix]修复编译msprof整包报错问题 Created-by: yu_liangbin Commit-by: yuliangbin Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 执行bash build.sh --mod=all编译整包会报错 - **修改内容:** 1.编译runtime包通过离线编译方式,指定三方依赖。 2.修改oam-tools编包过程中msprof二进制的路径为最新产物路径 ---- ## 2. 功能验证 - [x] **功能自验** 执行bash build.sh --mode=all编译整包以及安装  - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 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!354 | 1 month ago | |
[msprof-master]out分支同步到master分支 Co-authored-by: yu-liang-bin<y1416490440@163.com> | 8 months ago | |
bugfix:统一db问题修正 Co-authored-by: Seanesmhxocism<wangzixuan54@huawei.com> # message auto-generated for no-merge-commit merge: !487 merge linux into master bugfix:统一db问题修正 Created-by: Seanesmhxocism Commit-by: Seanesmhxocism Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** - 1、DPUTask表中包含globalTid,但是未遵循统一的globalTid的呈现逻辑。 - 2、静态图场景,无法区分device数据对应关系,globalTaskId重复 - **修改内容:** - 1、dpuTask表修改对应的globalTid计算规则为 高位pid 低位tid - 2、python侧 7 8 11 表pmuCalculator新增endTime - 3、c++侧pmuCalculator新增endtime字段 - 4、unifiedPmuProcessor增加读取endTime字段。 - 5、PmuTaskInfo表新增timestampNs字段 - 6、CommunicationTaskInfo表同样新增timestampNs字段 ---- ## 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!487 | 3 days ago | |
docs:文档优化 Co-authored-by: cai-weiwei1989<734267852@qq.com> # message auto-generated for no-merge-commit merge: !363 merge master into master docs:文档优化 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 同步PR:https://gitcode.com/Ascend/msprof/pull/370 - **修改内容:** 1. docs/zh/best_practices/memory_defragmentation.md:torch-npu改名 2. docs/zh/user_guide/profile_data_file_references.md 2.1 communication_statistic(集合通信算子统计信息)更新通信大算子信息截图、补充rank_size字段、dst rank字段描述更新、transport type字段补充UB和ROCE类型、link type字段补全类型 2.2 DPU数据分析:补充截图、dst rank字段描述更新、transport type字段补充UB和ROCE类型、link type字段补全类型 2.3 op_summary(算子详细信息)和task_time(任务调度信息):Task Type字段补充CCU和DPU类型 2.4 补充合入numa数据 3. docs/zh/user_guide/profile_data_file_references_db.md:QOS表新增dieId字段 ---- ## 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!363 | 1 month ago | |
统一streamId,taskId和batchId的字节大小为uint32_t Co-authored-by: panzhaohu<panzhaohu1@h-partners.com> # message auto-generated for no-merge-commit merge: !388 merge 0728_master into master 统一streamId,taskId和batchId的字节大小为uint32_t Created-by: panzhaohu Commit-by: panzhaohu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** streamId在代码有的地方是uint16_t,有的地方是uint32_t,不方便维护,现在统一大小 - **修改内容:** pre_commit扫描时会将变量名称*Datas改为Data,添加屏蔽规则 log_modeling里将LogModeling::GenMergeTaskKey(const HalLogData& logData)返回值改为结构体struct MergeTaskKeyData { uint32_t contextId; uint32_t taskId; uint32_t streamId; bool operator<(const MergeTaskKeyData& other) const { if (contextId != other.contextId) return contextId < other.contextId; if (taskId != other.taskId) return taskId < other.taskId; return streamId < other.streamId; } }; 因为将streamId和taskId扩容,组成的返回值超过uint64_t 核心数据结构 TaskId::streamId 类型变更: 将 analysis/csrc/domain/valueobject/include/task_id.h 中 TaskId 的 streamId 成员从 uint16_t 改为 uint32_t,构造函数参数和 IDHasher 哈希函数中的 hash<uint16_t> 同步改为 hash<uint32_t>,是本次统一的基础变更。 移除 assembler/processor 中冗余的类型转换: 在 op_summary_assembler.cpp、task_time_assembler.cpp、ascend_hardware_assembler.cpp、block_detail_assembler.cpp、overlap_analysis_processor.cpp、page_fault_processor.cpp 和 load_host_data.cpp 等文件中,移除了构造 TaskId 时对 streamId 的 static_cast<uint16_t>() 转换,因为字段类型现已匹配。 CCU/KFC/DPU 相关实体的 streamId 类型统一: 在 ccu_mission_processor.h、ccu_mission_data.h、dpu_processor.h、dpu_data.h、kfc_task_processor.h 和 kfc_turn_data.h 中,将各结构体(CCUMissionInfo、DPUData、KfcTurnData 等)及 using 类型别名(OriCCUMissionData、TrackFormat、OriKfcCommData 等)中的 streamId 从 uint16_t 改为 uint32_t,初始值也从 UINT16_MAX 改为 UINT32_MAX。 log_modeling.cpp 中分组键位运算调整: 由于 streamId 扩展为 32 位,GenMergeTaskKey 中 CONTEXT_OFFSET 从 32 改为 48、TASK_OFFSET 从 16 改为 32,新增 LOW_32BIT_MASK 常量,低 32 位用于存放完整的 streamId,高 16 位改为存放 deviceId 替代原来的 contextId;GenGroupKey 返回类型保持不变但内部直接使用 32 位 streamId。 持久化层和 HAL 实体中 streamId 相关类型适配: 在 ts_track_persistence.cpp 中将 TaskTypeDataFormat、StepTraceDataFormat 等数据库查询格式中的 stream_id 字段从 uint16_t 改为 uint32_t;在 ascend_obj.h 中将 CaptureStreamInfo::originalStreamId 改为 uint32_t;在 rt_add_info_center.cpp 中同步更新 LoadCaptureInfoDB 的查询 DataFormat;在 pmu_modeling.h 中将 pmu_ 映射的键类型从 uint16_t 改为 uint32_t;step_trace_tasks.h 中 allReduceTable 和 getNextTable 的键类型也同步改为 uint32_t。 ---- ## 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!388 | 1 month ago | |
docs:规范产品系列命名 Co-authored-by: cai-weiwei1989<734267852@qq.com> # message auto-generated for no-merge-commit merge: !421 merge master into master docs:规范产品系列命名 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** docs:规范产品系列命名 - **修改内容:** docs:规范产品系列命名 ---- ## 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!421 | 23 days ago | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
ccu c++ parser for host && device | 2 days ago | |
增加clang-tidy precommit Co-authored-by: WangangYu<2392205247@qq.com> # message auto-generated for no-merge-commit merge: !377 merge ywg-msprof into master 增加clang-tidy precommit Created-by: MrYudd Commit-by: WangangYu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** clang-tidy precommit 需要增加C++配置 - **修改内容:** clang-tidy precommit增加C++ 静态检查(本地 clang-tidy) ---- ## 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!377 | 1 month ago | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
【bugfix】[msprof]资料规范优化 Co-authored-by: cai-weiwei1989<734267852@qq.com> | 8 months ago | |
docs:删除冗余图片以及文档格式优化&产品支持情况打标 Co-authored-by: cai-weiwei1989<734267852@qq.com> # message auto-generated for no-merge-commit merge: !463 merge master into master docs:删除冗余图片以及文档格式优化&产品支持情况打标 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** docs:删除冗余图片以及文档格式修改 - **修改内容:** docs:删除冗余图片以及文档格式修改 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [x] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!463 | 9 days ago | |
[master]修复4个issue上的资料问题 Co-authored-by: yuliangbin<y1416490440@163.com> # message auto-generated for no-merge-commit merge: !314 merge fix_docs into master [master]修复4个issue上的资料问题 Created-by: yu_liangbin Commit-by: yuliangbin Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 资料部分存在目录结构、文件存放位置不对等问题 - **修改内容:** 1.修改资料首页的目录结构,补充缺失章节 2.文件存放位置修改 ---- ## 2. 功能验证 - [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!314 | 2 months ago | |
docs:删除冗余图片以及文档格式优化&产品支持情况打标 Co-authored-by: cai-weiwei1989<734267852@qq.com> # message auto-generated for no-merge-commit merge: !463 merge master into master docs:删除冗余图片以及文档格式优化&产品支持情况打标 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** docs:删除冗余图片以及文档格式修改 - **修改内容:** docs:删除冗余图片以及文档格式修改 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [x] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!463 | 9 days ago | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: Zhang-Yu001<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !392 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译测试依赖自动补齐(含 pytest/coverage)、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理 - .vscode/tasks.json — 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace - .vscode/launch.json — Python debugpy 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — .vscode/ 改为 .vscode/settings.json(保留 launch.json 和 tasks.json 的跟踪);补充 artifacts/、dist/、.venv/、.cache/、.ruff_cache/、.devcontainer/.host-gitconfig - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 新增 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为 clangd 生成编译数据库 - build.py — 新增 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_cpp_test_case.sh — 测试前备份 analysis/csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件 ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - **测试结果说明:** C++ 单元测试 244 个用例中 243 个通过,1 个失败: [ PASSED ] 243 tests. [ FAILED ] 1 test: DBAssemblerUTest.TestRunSaveOverlapAnalysisDataShouldReturnFalseWhenReserveFailed **该失败与 devcontainer 变更无关。** 本次变更未修改任何 analysis/csrc/ 下的 C++ 源码。失败原因是该测试用例依赖特定的 sqlite 运行时行为(reserve 操作),在当前容器环境(openEuler 24.03 + sqlite嵌入式)下条件未满足。此为预存问题,在原生的命令行构建环境中同样存在(bash scripts/execute_cpp_test_case.sh 运行结果一致),非 devcontainer 引入的回归。 Python 单元测试全量通过。 - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 3. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 4. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 5. 变更知会 - [ ] **资料修改** - docs/zh/development_guide/development_guide.md — 第 3 章"开发环境配置"新增 3.1 节 devcontainer 一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 3.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/msprof!392 | 1 month ago | |
[msprof_master]msprof编包支持根据tag名刷新run+whl包名 Co-authored-by: yuliangbin<y1416490440@163.com> # message auto-generated for no-merge-commit merge: !182 merge add_tag_version_info into master [msprof_master]msprof编包支持根据tag名刷新run+whl包名 Created-by: yu_liangbin Commit-by: yuliangbin Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** msprof编的解析whl包需要根据version.info文件刷新版本号 - **修改内容:** 1. set_up.py读取whl_version环境变量,刷新到whl包的version; 2. whl包安装适配; 3. 将version刷新到version.info中; ---- ## 2. 功能验证 - [x] **功能自验** 1. 执行build.sh编包  2. 安装run包   3. version.info刷新  - [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!182 | 4 months ago |
MindStudio Profiler
✨ 最新消息
🔹 [2025.12.30]:MindStudio Profiler项目首次上线
ℹ️ 简介
MindStudio Profiler(msProf)是面向 AI 训练与推理场景的性能分析工具,支持采集与解析 CANN 层和昇腾 AI 处理器 NPU 硬件层的软硬件性能数据,帮助定位模型训练或推理过程中的性能问题。msProf 也是其他 Profiling 采集接口的基础能力,许多上层性能采集与分析能力最终都依赖 msProf 完成底层数据采集。若希望了解昇腾性能调优工具的完整全景,可进一步参考MindStudio Profiler 文档总览。
⚙️ 功能介绍
| 功能名称 | 功能简介 | 文档 | 源码仓库 |
|---|---|---|---|
| 性能数据采集 | 通过 msProf 命令采集 CANN 平台及昇腾 AI 处理器的软硬件性能数据。 |
性能数据采集 | msprof |
| 性能数据解析 | 使用 msProf 工具对采集到的性能数据进行解析,生成可读的分析结果。 |
性能数据解析 | analysis |
🚀 快速入门
10分钟实战体验
以 ResNet50 训练为例,覆盖数据采集、解析导出与性能分析全流程。点击立即开始:《msProf 快速入门》。
极简命令行速查
若已熟悉操作流程,可直接执行采集命令。通用格式为 msprof --output=<输出目录> --application="<启动命令>",示例如下:
# 示例 1:采集 Python 训练任务
msprof --output=./output --application="python3 train.py"
# 示例 2:采集 Shell 脚本拉起的任务
msprof --output=./output --application="./run_standalone_train.sh"
📦 安装指南
工具的环境依赖与安装方法,请参见《msProf 安装指南》。
📘 使用指南
工具的详细使用方法,请参见《msProf 使用指南》。
💡 典型案例
通过典型问题场景帮助用户理解并掌握工具使用,请参见《msProf 典型案例》。
❓ FAQ
常见问题及解决方案,请参见《msProf FAQ》。
🌌 智能检索
为提升文档查阅效率,我们提供多种高效检索方式:
🔹 AI 问答(DeepWiki):自然语言问答,快速把握项目架构与模块关系。
🔹 AI 问答(ZRead):中文问答体验更优,精准定位功能用法与细节。
🔹 精确搜索(ReadTheDocs):关键词全文检索,直达接口、参数与报错等信息。
🛠️ 贡献指南
欢迎参与项目贡献,请参见 《贡献指南》。
⚖️ 相关说明
🔹 《版本说明》
🔹 《许可证声明》
🔹 《安全声明》
🔹 《免责声明》
🤝 建议与交流
欢迎大家为社区做贡献。如果有任何疑问或建议,请提交 Issues,我们会尽快回复。感谢您的支持。
| 即时互动(微信群) | 官方资讯(公众号) | 深度支持(助手/论坛) |
|---|---|---|
![]() 扫码加入技术交流群 |
![]() 扫码关注官方公众号 |
扫码入群并关注公众号,直达 MindStudio 用户与开发者最快捷的交流平台: 快速提问: 与社区小伙伴即时探讨技术问题 掌握动态: 第一时间获取版本发布与功能更新通知 经验共享: 与广大开发者交流最佳实践与实战心得 更多支持渠道:👉 昇腾助手: |
🙏 致谢
本工具由华为公司的下列部门贡献:
🔹 昇腾计算MindStudio开发部
感谢来自社区的每一个PR,欢迎贡献。
Introduction
MindStudio Profiler(msProf,模型调优工具)提供了AI任务运行性能数据、昇腾AI处理器系统数据等性能数据的采集和解析功能,这些功能侧重不同的训练或推理场景,可以定位模型训练或推理中的性能问题。
Customize your domain
