msPTI工具(MindStudio Profiling Tools Interface)是MindStudio针对Ascend设备提出的一套Profiling API,用户可以通过msPTI构建针对NPU应用程序的工具,用于分析应用程序的性能。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
docs: 资料低错修改 Co-authored-by: cai-weiwei1989<734267852@qq.com> # message auto-generated for no-merge-commit merge: !57 merge master into master docs: 资料低错修改 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 1、.gitcode/PULL_REQUEST_TEMPLATE.zh-CN.md资料ci问题修改 2、README.md资料写作风格统一 3、docs/zh/mspti_install_guide.md安装指南描述风格统一,并以本仓安装方式描述为主 4、补充支持Hccl 5、“昇腾950代际产品”统一改为“Atlas 350 加速卡” - **修改内容:** ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++: - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++: - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!57 | 3 个月前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
mspti memory activity develop part3: integrate to activity manager && add ut doc Co-authored-by: eejiechu<wangjie659@huawei.com> # message auto-generated for no-merge-commit merge: !157 merge mspti_memory_report_dev into master mspti memory activity develop part3: integrate to activity manager && add ut doc Created-by: eejiechu Commit-by: eejiechu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 将 MemoryParser 集成到 Activity Manager 的采集流程中,使内存相关活动(Memory/Memset/Memcpy)能够通过 CANN 运行时原生上报,而不再依赖 LD_PRELOAD - **修改内容:** 1. MemoryParser 接入 profiling 数据采集流程: memory parser 解析上报 runtime memory 数据 2. 通过 runtime 版本,区分不同内存上报途径: 9.2.0 以后使用新上报路径,之前的使用旧的LD_PRELOAD路径,保持兼容性 3. 新增 MemoryParser 单元测试: 覆盖 ReportMemory(Malloc/Free/Host/Managed)、ReportMemset(同步/异步)、ReportMemcpy(多种 copyKind)以及各场景下的行为验证。 4. 样本代码、辅助函数、相关文档更新 5. Memory/Memset/Memcpy Activity correlationId 字段当前为预留字段,后续补充 ---- ## 2. 功能验证 - [x] **功能自验** memset activity  memcpy activity  memory activity  - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!157 | 4 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
mspti add flush channel Co-authored-by: eejiechu<wjchuee@foxmail.com> # message auto-generated for no-merge-commit merge: !101 merge mspti_flush_channel into master mspti add flush channel Created-by: eejiechu Commit-by: eejiechu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** A5 驱动向 profiler 组件上报数据的逻辑有变更,在关闭某类数据采集时,需要添加 flush 机制 - **修改内容:** 1. 引入驱动 halProfDataFlush 接口,在关闭 Kernel、Communication 等类型数据采集时,增加 flush 逻辑(实现参考[msprof](https://gitcode.com/cann/runtime/blob/master/src/dfx/msprof/collector/dvvp/transport/prof_channel.cpp)),保证device数据上报上来 2. 修复 python 接口逻辑,停止采集和取消注册的逻辑 3. 补充 channel_reader 相关 UT ---- ## 2. 功能验证 - [x] **功能自验** 在 A2、A5 上均正常运行  - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!101 | 2 个月前 | |
feat(pre-commit): 集成 Gitleaks 本地离线密钥扫描功能 Co-authored-by: yuliangbin<y1416490440@163.com> # message auto-generated for no-merge-commit merge: !137 merge fix_commit into master feat(pre-commit): 集成 Gitleaks 本地离线密钥扫描功能 Created-by: yu_liangbin Commit-by: yuliangbin Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 1.密钥泄露是常见的安全风险,开发者可能在代码中硬编码 AK/SK、Token 等敏感信息 2.通过 pre-commit hook 在提交前拦截,从源头防止凭证进入 Git 历史 3.使用本地离线二进制扫描,无需网络连接,不依赖外部服务 - **修改内容:** 1..pre-commit-config.yaml:新增 gitleaks-offline-scan local hook,使用本地 gitleaks 二进制执行 protect 命令,在 pre-commit 阶段对暂存文件进行密钥扫描 2.pre-commit/.gitleaks.toml:新增 Gitleaks 配置文件,继承官方内置全套检测规则(useDefault = true),并提供自定义规则、全局白名单、行内屏蔽等扩展配置示例 ---- ## 2. 功能验证 - [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/mspti!137 | 27 天前 | |
mspti hccl activity sample fix Co-authored-by: eejiechu<wangjie659@huawei.com> # message auto-generated for no-merge-commit merge: !158 merge mspti_hccl_sample_fix into master mspti hccl activity sample fix Created-by: eejiechu Commit-by: eejiechu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** mspti hccl activity 样例代码修复 - **修改内容:** 1. 修复 Hccl 通信域销毁时的device清理流程缺失:在 main 函数末尾 HcclCommDestroy 调用前新增 ACL_CALL(aclrtSetDevice(devices[i])),调用后新增 ACL_CALL(aclrtResetDevice(devices[i])),确保每个hcclcomm在正确的设备上销毁并重置Device 2. pre-commit相关 ---- ## 2. 功能验证 - [x] **功能自验** ci pre-smoke 会跑hccl activity的样例,正常通过   - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!158 | 3 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
mspti memory activity develop part3: integrate to activity manager && add ut doc Co-authored-by: eejiechu<wangjie659@huawei.com> # message auto-generated for no-merge-commit merge: !157 merge mspti_memory_report_dev into master mspti memory activity develop part3: integrate to activity manager && add ut doc Created-by: eejiechu Commit-by: eejiechu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 将 MemoryParser 集成到 Activity Manager 的采集流程中,使内存相关活动(Memory/Memset/Memcpy)能够通过 CANN 运行时原生上报,而不再依赖 LD_PRELOAD - **修改内容:** 1. MemoryParser 接入 profiling 数据采集流程: memory parser 解析上报 runtime memory 数据 2. 通过 runtime 版本,区分不同内存上报途径: 9.2.0 以后使用新上报路径,之前的使用旧的LD_PRELOAD路径,保持兼容性 3. 新增 MemoryParser 单元测试: 覆盖 ReportMemory(Malloc/Free/Host/Managed)、ReportMemset(同步/异步)、ReportMemcpy(多种 copyKind)以及各场景下的行为验证。 4. 样本代码、辅助函数、相关文档更新 5. Memory/Memset/Memcpy Activity correlationId 字段当前为预留字段,后续补充 ---- ## 2. 功能验证 - [x] **功能自验** memset activity  memcpy activity  memory activity  - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!157 | 4 天前 | |
[fix]添加.clang-format格式化检查文件 Co-authored-by: yuliangbin<y1416490440@163.com> # message auto-generated for no-merge-commit merge: !145 merge fix_format into master [fix]添加.clang-format格式化检查文件 Created-by: yu_liangbin Commit-by: yuliangbin Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 仓内缺少.clang-format c++格式检查文件 - **修改内容:** 补充仓上.clang-format c++格式检查文件 ---- ## 2. 功能验证 - [x] **功能自验** - [x] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!145 | 23 天前 | |
mspti pre_commit add clang-tidy Co-authored-by: eejiechu<wangjie659@huawei.com> # message auto-generated for no-merge-commit merge: !149 merge mspti_pre_commit_fix into master mspti pre_commit add clang-tidy Created-by: eejiechu Commit-by: eejiechu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** mspti pre-commit 添加 clang-tidy 检查 - **修改内容:** 1. 添加 clang-tidy 检查配置文件 2. pre-commit 规则中添加 clang-tidy 步骤 ---- ## 2. 功能验证 - [x] **功能自验** 本地可正常执行检测  - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!149 | 16 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
mspit开源资料合入 Co-authored-by: xzm123<xiezuomeng@huawei.com> | 7 个月前 | |
mspti name doc fix Co-authored-by: eejiechu<wangjie659@huawei.com> # message auto-generated for no-merge-commit merge: !156 merge mspti_name_doc_fix into master mspti name doc fix Created-by: eejiechu Commit-by: eejiechu Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** 社区issue修复,文档中MSPTI统一整改 - **修改内容:** 1. api文档、注释中的 MSPTI 统一改为 msPTI,与文档中其他说明保持一致 2. zread 链接调整为 Ascend/mspti ---- ## 2. 功能验证 - [x] **功能自验** 首页 zread  api 文档中 MSPTI 统一改为 msPTI  - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!156 | 9 天前 | |
docs: 英文资料合入 Co-authored-by: cai-weiwei1989<734267852@qq.com> # message auto-generated for no-merge-commit merge: !75 merge master into master docs: 英文资料合入 Created-by: cai-weiwei1989 Commit-by: cai-weiwei1989 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** - **修改内容:** 英文资料合入 ---- ## 2. 功能验证 - [ ] **功能自验** - [ ] **本地自验用例截图** - [ ] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [ ] **资料修改** - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!75 | 1 个月前 | |
msPTI开源 Co-authored-by: z30043230<zhaiyibo@h-partners.com> | 7 个月前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 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. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、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 — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 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_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 3 天前 | |
增加version.info文件 Co-authored-by: xfeng<zhaiyibo@h-partners.com> # message auto-generated for no-merge-commit merge: !23 merge fix into master 增加version.info文件 Created-by: zyb_230 Commit-by: xfeng Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** cann包卸载时候要求有一个version.info文件。不然会有报错 - **修改内容:** 增加一个version.info文件 ---- ## 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/mspti!23 | 5 个月前 |
MindStudio Profiler Tools Interface
✨ 最新消息
🔹 [2026.02.06]:版本说明新增 26.0.0-alpha.1 发布记录,兼容 CANN > 8.5.0,详情请参见 《版本说明》。
ℹ️ 简介
msPTI(MindStudio Profiler Tools Interface)是面向 Ascend 设备的 Profiling API 集合,帮助开发者为 NPU 应用构建性能采集与分析工具,适用于推理与训练场景。
msPTI 主要提供以下能力:
Tracing:采集 CANN API、Kernel、内存拷贝、通信、打点等时间戳及附加信息,用于定位执行链路中的性能瓶颈。Profiling:单独采集一个或一组 Kernel 的 NPU 性能指标,支撑计算与通信分析。
⚙️ 功能介绍
| 模块 | 功能简介 | 文档 |
|---|---|---|
Activity API |
采集 API、Kernel、Memory、HCCL、Marker、External Correlation 等活动数据,用于构建 Tracing / Profiling 工具。 | C API 参考 |
Callback API |
订阅 Runtime / HCCL 回调,在 API 调用前后执行自定义逻辑或关联采集数据。 | C API 参考 |
Python API |
提供 KernelMonitor、HcclMonitor、MstxMonitor、CommunicationMonitor 等接口,快速接入 Python 场景分析能力。 |
Python API 参考 |
样例集 |
覆盖 callback、activity、correlation、HCCL、Python monitor 等典型场景,便于快速上手。 | 样例说明 / 样例指南 |
🚀 快速入门
快速入门介绍msPTI工具的使用流程,具体请参见《msPTI快速入门》。
📦 安装指南
介绍工具的环境依赖与安装方法,请参见 《msPTI 工具安装指南》。
📘 使用指南
工具的详细使用方法,请参见 《msPTI 使用指南》。
💡 典型案例
通过典型问题场景帮助用户理解并掌握工具使用,请参见《msPTI 典型案例》。
📚 API 参考
包含 C API 接口和 Python API 接口两种类型,请参见 《C API 参考》和《Python API 参考》。
🌌 智能检索
为提升文档查阅效率,我们提供多种高效检索方式:
🔹 AI 问答(DeepWiki):自然语言问答,快速把握项目架构与模块关系。
🔹 AI 问答(ZRead):中文问答体验更优,精准定位功能用法与细节。
🔹 精确搜索(ReadTheDocs):关键词全文检索,直达接口、参数与报错等信息。
🛠️ 贡献指南
欢迎参与项目贡献,请参见 《贡献指南》。
📝 相关说明
🔹 《版本说明》
🔹 《许可证声明》
🔹 《安全声明》
🔹 《免责声明》
🤝 建议与交流
欢迎大家为社区做贡献。如果有任何疑问或建议,请提交 Issues,我们会尽快回复。感谢您的支持。
| 💬 即时互动(微信群) | 📢 官方资讯(公众号) | 深度支持(助手/论坛) |
|---|---|---|
![]() 扫码直接加入技术交流群 |
![]() 扫码关注获取最新动态 |
扫码入群并关注公众号,直达 MindStudio 用户与开发者最快捷的交流平台: 快速提问: 与社区小伙伴即时探讨技术问题 掌握动态: 第一时间获取版本发布与功能更新通知 经验共享: 与广大开发者交流最佳实践与实战心得 🛠️ 更多支持渠道:👉 昇腾助手: |
🙏 致谢
本工具由华为公司的下列部门贡献:
🔹 昇腾计算MindStudio开发部
感谢来自社区的每一个PR,欢迎贡献。

