贡献指南【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa本项目欢迎广大开发者体验并参与贡献。在参与社区贡献之前请参见 cann-community 了解社区行为准则、完成 CLA 签署流程并熟悉源码仓的贡献方式。本文档分为以下 3 个部分常见贡献场景了解哪些类型的修改适合参与贡献以及如何从 Issue 开始。本地开发准备本地实现、交付文件和本地检查。提交与合入 PR完成提交前检查、提交 PR并跟进评审与合入流程。常见贡献场景算子 Bug 修复如果您在本项目中发现某些算子实现存在缺陷并希望对其进行修复欢迎通过 Issue 进行反馈、跟踪与处理。您可以参考 提交 Issue / 处理 Issue 任务 创建Bug-Report|缺陷反馈类 Issue对问题进行描述然后在评论区输入/assign或/assign yourself将该 Issue 分配给自己处理。算子优化如果您对本项目中的某些算子实现有泛化增强或性能优化思路并希望着手实现这些优化点欢迎贡献相关改进。您可以参考 提交 Issue / 处理 Issue 任务 创建Requirement|需求建议类 Issue说明优化点并提供设计方案然后在评论区输入/assign或/assign yourself将该 Issue 分配给自己持续跟进。贡献新算子如果您希望基于 NPU 设计并实现一个全新的算子欢迎在 Issue 中提出您的想法与设计方案。1. 新建 Issue请按照 提交 Issue / 处理 Issue 任务 指引创建Requirement|需求建议类 Issue并在其中说明新增算子的设计方案。Issue 建议至少包含以下内容背景信息价值 / 作用设计方案同时请在提交的 Issue 中评论/assign或/assign yourself认领该任务以便后续完成算子上库。2. 需求评审SIG 成员会对您提交的 Issue 进行评审并反馈修改意见。完成修改后请在 Issue 中回复“完成意见修改申请复审”如果需求被接纳SIG 成员会为您分配合适的算子分类路径例如include/pto/npu/a5便于您将新增算子提交到对应目录。如果在 Issue 交流中未能达成共识建议申请在 SIG 双周例会上进一步讨论。文档纠错如果您发现算子文档中存在描述错误欢迎通过 Issue 反馈并提交修复。您可以参考 提交 Issue / 处理 Issue 任务 创建Documentation|文档反馈类 Issue指出对应文档的问题然后在评论区输入/assign或/assign yourself将该 Issue 分配给自己处理。帮助解决他人 Issue如果社区中他人遇到的问题您有合适的解决思路欢迎在对应 Issue 中发表评论帮助一起解决问题、优化易用性。如果对应 Issue 需要代码修改您也可以在评论区输入/assign或/assign yourself将任务分配给自己持续跟进并推动问题解决。本地开发方案确认后就可以开始本地开发了。对于新增算子交付内容可以在满足最小要求的基础上按需调整。下面给出一个更贴近当前仓库结构的参考布局其中${op_name}为算子名称${op_class}为评审过程中分配的算子分类路径docs/ ├── isa/ │ └── ${op_name}.md # 算子说明文档 include/ └── pto/ ├── common/ │ ├── pto_instr_impl.hpp # 算子实现汇总 │ └── pto_instr.hpp # 对外接口 └── ${op_class}/ └── ${op_name}.hpp # 算子实现文件、注释、结构与逻辑 tests/ ├── ${op_class}/src/st/testcase/ │ ├── ${op_name}/ │ │ ├── ${op_name}.cpp # 调用接口文件 │ │ ├── main.cpp # 测试入口文件 │ │ ├── gen_data.py # 输入 / 期望结果生成脚本 │ │ └── CMakeLists.txt # 构建文件 │ └── CMakeLists.txt # 测试集合构建文件 ├── run_st.sh # ST 执行脚本入口 └── README.md # 测试说明在准备提交 PR 之前建议先完成以下本地开发检查交付文件是否完整是否包含 ST 测试用例代码是否符合.clang-format与pyproject.toml规范提交前请使用clang-format -i -stylefile file和ruff format file进行格式修复提交与合入 PR在准备本地代码与提交 PR 时请重点关注以下几点提交 PR 时请按照 PR 模板仔细填写本次变更的业务背景、目标和设计方案等信息。若您的修改不是简单的 bug 修复而是涉及新增特性、新增接口、新增配置参数或修改既有流程建议先通过 Issue 进行方案讨论以避免后续评审中出现返工或无法合入的情况。如果您不确定本次修改是否属于“简单的 bug 修复”也建议优先提交 Issue 进行确认。提交前本地检查社区贡献者可以使用pre-commit能力在提交前执行本地检查。步骤 1安装pre-commit框架# 使用 pip推荐 pip install pre-commit # 验证安装 pre-commit --version # 输出: pre-commit 3.x.xWindows 用户请确保已安装 Python 和 pip。步骤 2进入项目目录cd /path/to/your/pto-isa # 例如 cd d:\complianceRepo\CANN\pto-isa步骤 3安装 Git Hooks# 在项目根目录运行 pre-commit install步骤 4验证安装可选该命令用于验证pre-commithook 是否已正确安装并能正常执行。若检查通过它会创建一个空提交因此如果只是用于测试验证完成后可以将该提交撤销。安装pre-commit后后续执行git commit时会自动触发同样的检查。# 使用空提交测试 hook git commit --allow-empty -m test pre-commitPR 提交与评审在正式提交 PR 前还请确认以下事项PR 是否已关联对应 Issue是否已完成 CLA 签署是否通过评论中的compile指令触发 CI 检查并根据 CI 结果修复问题若codecheck存在误报请联系 SIG 成员处理门禁通过后请在关联的 Issue 中回复“该 Issue 关联的 PRXXX请尽快评审”收到 SIG 成员的评审意见后请完成所有修改并回复“该 Issue 关联的 PRXXX已完成 PR 问题整改请尽快评审”Committer 检视通过后Maintainer 会进行最终审核。确认无误后将通过/lgtm和/approve标签合入 PR。【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN PTO-ISA 贡献指南
发布时间:2026/7/11 13:25:50
贡献指南【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa本项目欢迎广大开发者体验并参与贡献。在参与社区贡献之前请参见 cann-community 了解社区行为准则、完成 CLA 签署流程并熟悉源码仓的贡献方式。本文档分为以下 3 个部分常见贡献场景了解哪些类型的修改适合参与贡献以及如何从 Issue 开始。本地开发准备本地实现、交付文件和本地检查。提交与合入 PR完成提交前检查、提交 PR并跟进评审与合入流程。常见贡献场景算子 Bug 修复如果您在本项目中发现某些算子实现存在缺陷并希望对其进行修复欢迎通过 Issue 进行反馈、跟踪与处理。您可以参考 提交 Issue / 处理 Issue 任务 创建Bug-Report|缺陷反馈类 Issue对问题进行描述然后在评论区输入/assign或/assign yourself将该 Issue 分配给自己处理。算子优化如果您对本项目中的某些算子实现有泛化增强或性能优化思路并希望着手实现这些优化点欢迎贡献相关改进。您可以参考 提交 Issue / 处理 Issue 任务 创建Requirement|需求建议类 Issue说明优化点并提供设计方案然后在评论区输入/assign或/assign yourself将该 Issue 分配给自己持续跟进。贡献新算子如果您希望基于 NPU 设计并实现一个全新的算子欢迎在 Issue 中提出您的想法与设计方案。1. 新建 Issue请按照 提交 Issue / 处理 Issue 任务 指引创建Requirement|需求建议类 Issue并在其中说明新增算子的设计方案。Issue 建议至少包含以下内容背景信息价值 / 作用设计方案同时请在提交的 Issue 中评论/assign或/assign yourself认领该任务以便后续完成算子上库。2. 需求评审SIG 成员会对您提交的 Issue 进行评审并反馈修改意见。完成修改后请在 Issue 中回复“完成意见修改申请复审”如果需求被接纳SIG 成员会为您分配合适的算子分类路径例如include/pto/npu/a5便于您将新增算子提交到对应目录。如果在 Issue 交流中未能达成共识建议申请在 SIG 双周例会上进一步讨论。文档纠错如果您发现算子文档中存在描述错误欢迎通过 Issue 反馈并提交修复。您可以参考 提交 Issue / 处理 Issue 任务 创建Documentation|文档反馈类 Issue指出对应文档的问题然后在评论区输入/assign或/assign yourself将该 Issue 分配给自己处理。帮助解决他人 Issue如果社区中他人遇到的问题您有合适的解决思路欢迎在对应 Issue 中发表评论帮助一起解决问题、优化易用性。如果对应 Issue 需要代码修改您也可以在评论区输入/assign或/assign yourself将任务分配给自己持续跟进并推动问题解决。本地开发方案确认后就可以开始本地开发了。对于新增算子交付内容可以在满足最小要求的基础上按需调整。下面给出一个更贴近当前仓库结构的参考布局其中${op_name}为算子名称${op_class}为评审过程中分配的算子分类路径docs/ ├── isa/ │ └── ${op_name}.md # 算子说明文档 include/ └── pto/ ├── common/ │ ├── pto_instr_impl.hpp # 算子实现汇总 │ └── pto_instr.hpp # 对外接口 └── ${op_class}/ └── ${op_name}.hpp # 算子实现文件、注释、结构与逻辑 tests/ ├── ${op_class}/src/st/testcase/ │ ├── ${op_name}/ │ │ ├── ${op_name}.cpp # 调用接口文件 │ │ ├── main.cpp # 测试入口文件 │ │ ├── gen_data.py # 输入 / 期望结果生成脚本 │ │ └── CMakeLists.txt # 构建文件 │ └── CMakeLists.txt # 测试集合构建文件 ├── run_st.sh # ST 执行脚本入口 └── README.md # 测试说明在准备提交 PR 之前建议先完成以下本地开发检查交付文件是否完整是否包含 ST 测试用例代码是否符合.clang-format与pyproject.toml规范提交前请使用clang-format -i -stylefile file和ruff format file进行格式修复提交与合入 PR在准备本地代码与提交 PR 时请重点关注以下几点提交 PR 时请按照 PR 模板仔细填写本次变更的业务背景、目标和设计方案等信息。若您的修改不是简单的 bug 修复而是涉及新增特性、新增接口、新增配置参数或修改既有流程建议先通过 Issue 进行方案讨论以避免后续评审中出现返工或无法合入的情况。如果您不确定本次修改是否属于“简单的 bug 修复”也建议优先提交 Issue 进行确认。提交前本地检查社区贡献者可以使用pre-commit能力在提交前执行本地检查。步骤 1安装pre-commit框架# 使用 pip推荐 pip install pre-commit # 验证安装 pre-commit --version # 输出: pre-commit 3.x.xWindows 用户请确保已安装 Python 和 pip。步骤 2进入项目目录cd /path/to/your/pto-isa # 例如 cd d:\complianceRepo\CANN\pto-isa步骤 3安装 Git Hooks# 在项目根目录运行 pre-commit install步骤 4验证安装可选该命令用于验证pre-commithook 是否已正确安装并能正常执行。若检查通过它会创建一个空提交因此如果只是用于测试验证完成后可以将该提交撤销。安装pre-commit后后续执行git commit时会自动触发同样的检查。# 使用空提交测试 hook git commit --allow-empty -m test pre-commitPR 提交与评审在正式提交 PR 前还请确认以下事项PR 是否已关联对应 Issue是否已完成 CLA 签署是否通过评论中的compile指令触发 CI 检查并根据 CI 结果修复问题若codecheck存在误报请联系 SIG 成员处理门禁通过后请在关联的 Issue 中回复“该 Issue 关联的 PRXXX请尽快评审”收到 SIG 成员的评审意见后请完成所有修改并回复“该 Issue 关联的 PRXXX已完成 PR 问题整改请尽快评审”Committer 检视通过后Maintainer 会进行最终审核。确认无误后将通过/lgtm和/approve标签合入 PR。【免费下载链接】pto-isaParallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operations. This repository offers high-performance, cross-platform tile operations across Ascend platforms.项目地址: https://gitcode.com/cann/pto-isa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考