news 2026/5/9 15:34:59

CANN基础算子贡献指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN基础算子贡献指南

贡献指南

【免费下载链接】community本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息项目地址: https://gitcode.com/cann/community

本项目欢迎广大开发者体验并参与贡献,在参与社区贡献之前。请参见cann-community了解行为准则,进行CLA协议签署,了解源码仓的贡献流程。

开发者准备本地代码与提交PR时需要重点关注如下几点:

  1. 提交PR时,请按照PR模板仔细填写本次PR的业务背景、目的、方案等信息。
  2. 若您的修改不是简单的bug修复,而是涉及到新增特性、新增接口、新增配置参数或者修改代码流程等,请务必先通过Issue进行方案讨论,以避免您的代码被拒绝合入。若您不确定本次修改是否可被归为“简单的bug修复”,亦可通过提交Issue进行方案讨论。

开发者贡献场景主要包括:

算子Bug修复

如果您在本项目中发现了某些算子Bug,希望对其进行修复,欢迎您新建Issue进行反馈和跟踪处理。

您可以按照提交Issue/处理Issue任务指引新建Bug-Report|缺陷反馈类Issue对Bug进行描述,然后在评论框中输入“/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成员将为您分配合适的算子分类路径(如:experimental/math),以便您将新增算子提交至对应目录。 如在 Issue 交流中未能达成共识,建议申报 SIG 组双周例会,在会议中进行进一步讨论。

3. 提交 PR

在方案确定后,即可开始开发工作。新增算子的交付内容可基于最小交付件结构调整,请参考以下最小交付件进行检查。其中${op_name}为新增算子名称。

${op_class} # 算子分类 ├── ${op_name} # 算子名 │ ├── op_host # 算子定义、Tiling相关实现 │ │ ├── ${op_name}_def.cpp # 算子定义文件 │ │ ├── ${op_name}_tiling.cpp # 算子Tiling实现文件 │ │ └── CMakeLists.txt │ ├── op_kernel # 算子Kernel目录 │ │ ├── ${op_name}.cpp # Kernel入口文件,包含主函数和调度逻辑 │ │ ├── ${op_name}.h # Kernel实现文件,定义Kernel头文件,包含函数说明、结构定义、逻辑实现 │ │ ├── ${op_name}_tiling_data.h # TilingData文件,存储Tiling策略相关配置信息 │ │ └── ${op_name}_tiling_key.h # TilingKey文件,定义Tiling策略的key,标识不同划分方式 │ ├── CMakeLists.txt # 算子编译配置文件,保留原文件即可 │ └── README.md # 算子说明文档 │ └── tests # 算子测试文件 │ │ ├── ut # 算子ut测试文件

开发完成后,请检查以下内容:

  • 代码交付件完整性(含 UT 测试用例代码)
  • PR 是否已关联对应 Issue
  • 是否签署 CLA
  • 通过评论compile指令触发开源仓门禁,并依据 CI 检测结果进行修改。如涉及codecheck误报,请提交给sig成员屏蔽。

门禁通过后,请在关联的 Issue 中回复:

"该 Issue 关联的 PR:XXX,请尽快评审"

Sig成员检视后将反馈检视意见,请完成所有修改后回复:

"该 Issue 关联的 PR:XXX,已完成 PR 问题整改,请尽快评审"

4. PR 上库

Committer 检视通过后,Maintainer 将进行最终审核。确认无误后,将标注/lgtm/approve标签合入PR。

文档纠错

如果您在本项目中发现某些算子文档描述错误,欢迎您新建Issue进行反馈和修复。

您可以按照提交Issue/处理Issue任务指引新建Documentation|文档反馈类Issue指出对应文档的问题,然后在评论框中输入“/assign”或“/assign @yourself”,将该Issue分配给您纠正对应文档描述。

帮助解决他人Issue

如果社区中他人遇到的问题您有合适的解决方法,欢迎您在Issue中发表评论交流,帮助他人解决问题和痛点,共同优化易用性。

如果对应Issue需要进行代码修改,您可以在Issue评论框中输入“/assign”或“/assign @yourself”,将该Issue分配给您,跟踪协助解决问题。

【免费下载链接】community本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息项目地址: https://gitcode.com/cann/community

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:34:35

从工具到伙伴:通用人工智能的技术原理、瓶颈与风险治理

1. 从“工具”到“伙伴”:我们离真正的通用智能还有多远?作为一名在科技行业摸爬滚打了十几年的从业者,我亲眼见证了人工智能从实验室里的数学游戏,一步步变成我们手机里的语音助手、推荐算法和自动驾驶系统。今天,我想…

作者头像 李华
网站建设 2026/5/9 15:31:51

AI设计圣经:用规则引擎提升UI/UX设计效率与一致性

1. 项目概述:为AI设计助手打造的UI/UX设计规则圣经如果你和我一样,既是开发者,又经常需要和设计师协作,或者干脆自己上手用Figma画界面,那你肯定遇到过这样的场景:脑子里有个不错的想法,打开Fig…

作者头像 李华
网站建设 2026/5/9 15:31:42

本地优先Markdown编辑器:构建私有知识库的技术实现与应用

1. 项目概述:一个为本地化写作而生的智能工具最近在折腾个人知识管理和内容创作时,我一直在寻找一个能让我完全掌控数据、又能提供流畅写作体验的工具。市面上的在线文档和笔记软件虽然方便,但数据安全、格式锁定和网络依赖始终是心里的疙瘩。…

作者头像 李华
网站建设 2026/5/9 15:31:18

基于LangGraph与RAG的医疗多智能体AI系统实战解析

1. 项目概述:一个面向医疗领域的多智能体AI助手如果你正在寻找一个能真正将前沿AI技术落地到医疗场景的实战项目,那么Multi-Agent-Medical-Assistant绝对值得你花时间深入研究。这个项目远不止是一个简单的“聊天机器人”,它是一个集成了大型…

作者头像 李华
网站建设 2026/5/9 15:25:00

基于GPT-4o与OCR的物理考试自动评分系统:从手写识别到智能评判

1. 项目概述:当AI阅卷员走进物理考场 最近在跟几位做教育信息化的朋友聊天,大家不约而同地提到了一个痛点:物理、数学这类理科的考试阅卷,尤其是计算题和证明题,实在太费老师了。一道题,学生可能用了十几种…

作者头像 李华
网站建设 2026/5/9 15:21:31

ChatGptNet:.NET开发者集成ChatGPT API的实战指南与架构设计

1. 项目概述:一个为.NET开发者打造的ChatGPT集成利器如果你是一名.NET开发者,最近被ChatGPT的API搞得有点头大,或者厌倦了每次调用都要手动处理HTTP请求、解析JSON、管理对话状态这些繁琐的步骤,那么你很可能需要了解一下ChatGptN…

作者头像 李华