欢迎加入CANN社区,通过社区合作,打造面向全场景的“AI异构计算平台”,为人工智能相关领域的研究者、开发者和工程师提供开发友好、运行高效、部署灵活的体验,共同繁荣人工智能软硬件应用生态。
1. 体验CANN开放项目
- ops-math:数学类计算基础算子库
CANN算子库中提供数学类计算的基础算子库,包括math类、conversion类等算子。
- ops-transformer:transformer类大模型计算进阶算子库
CANN算子库中提供transformer类大模型计算的进阶算子库,包括attention类、moe类等算子。
- ops-nn:神经网络计算能力高阶算子库
CANN算子库中提供神经网络计算能力的高阶算子库,包括matmul类、activation类等算子。
- ops-cv:图像处理算子库
CANN算子库中提供图像处理、目标检测等能力的高阶算子库,涵盖常见的图像处理操作,包括image类、objdetect类算子。
2. 了解社区行为准则
在参与贡献前,请了解《CANN开放项目行为准则》,后续您在CANN开放项目的活动(包括但不限于发表评论、提交Issue、发表wiki等)都请遵循此行为准则。
3. 签署贡献者协议(CLA)
在参与项目贡献前,您需要签署CANN开放项目贡献者许可协议(CLA)。
请根据您的参与身份,选择签署个人CLA、企业CLA 或员工CLA,请点击这里签署。
个人CLA:以个人身份参与社区,请签署个人CLA。
企业CLA:以企业身份参与社区,请签署企业CLA。
员工CLA:以企业员工的身份参与社区,请签署员工CLA。
4. 参与贡献
在签署了CLA协议、找到了你想参与的开放项目后,就可以开始您的贡献之旅啦!
贡献的方式有很多种,每一种贡献都将受到欢迎和重视。
4.1 提交Issue/处理Issue任务
在这里,Issue 是用来记录和追踪开发者的想法、反馈、任务和缺陷。因此,通过 Issue 参与自己感兴趣的 SIG 或项目,是比较便捷的参与社区贡献方式之一。常见的 Issue 场景有:
(1) 报告 bug
(2) 提交建议
(3) 记录一个待完成任务
(4) 指出文档缺失/安装问题
(5) 答疑交流
找到Issue列表
在您感兴趣的CANN开放项目Gitcode 主页内,点击“Issues”,即可找到 Issue 列表。如(cann的issue列表)
-
提交Issue
如果您准备向社区上报Bug或者提交需求,或者为社区贡献自己的意见或建议,请在CANN开放项目对应的仓库上提交Issue。
提交Issue请参考 Issue 提交指南。
-
参与Issue讨论
每个Issue下面都支持开发者们交流讨论,如果您感兴趣,可以在评论区中发表自己的意见。
找到愿意处理的Issue
如果您愿意处理其中的一个Issue,可以将它分配给自己。只需要在评论框内输入“/assign”或 “/assign @yourself”,机器人就会将问题分配给您,您的名字将显示在负责人列表里。
4.2 贡献编码
-
准备CANN开发环境
如果您想参与编码贡献,需要准备CANN开发环境,请参考每个开放项目的README.md,了解环境准备。
-
了解CANN开放项目内的开发注意事项
(1) 每个CANN开放项目使用的编码语言、开发编译环境等都可能存在差异,请参考每个开放项目中的README.md,了解编码贡献的一些要求。
(2) CANN开放项目软件编码遵循许可协议:CANN Open Software License Agreement Version 2.0,详细的协议说明请参见每个开放项目中的LICENSE文件,如果您贡献代码到CANN开放项目的源码仓,请遵循此协议。
请在新建的源码文件(包括cpp、py、h等文件)头部增加如下声明:
/** * This program is free software, you can redistribute it and/or modify. * Copyright (c) 2025 Huawei Technologies Co., Ltd. * This file is a part of the CANN Open Software. * Licensed under CANN Open Software License Agreement Version 2.0 (the "License"). * Please refer to the License for details. You may not use this file except in compliance with the License. * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. * See LICENSE in the root of the software repository for the full text of the License. */
-
代码下载与贡献流程
(1) 进行代码开发前,请先将需要参与开发的仓库fork到个人仓,然后将个人仓下载到本地。并在本地分支进行代码修改。
(2) 参考每个开放项目的说明文档,进行本地构建与验证。
(3) 代码验证满足贡献要求后,提交Pull-Request,将代码贡献到相应的开放项目。
(4) 请注意查看门禁测试结果,若未通过,请根据问题提示进行本地代码修改;若通过,此PR会被分配给committer检视,请关注committer的检视意见。
(5) 当您的PR检视通过后,代码会合入相应的开放项目。
关于Gitcode工作流的详细操作可参见gitcode工作流说明。
当您在提交PR过程中遇到问题,常见问题的解决方法可参见FAQs。
5. 加入SIG组一起成长
SIG 是 Special Interest Group 的缩写,CANN的开放项目以SIG的形式运作,以便于更好的管理和改善工作流程。SIG 组均是开放的,欢迎任何人来参与。
-
SIG都是针对特定的一个或多个技术主题而成立的。SIG的核心成员主导SIG的治理,SIG内的成员推动交付成果输出,并争取让交付成果成为社区发行的一部分。
-
每一个SIG会拥有一个或多个Repository,SIG的交付成果会保存在这些Repository内。您可以在SIG对应的Repository内提交Issue、针对特定问题参与讨论,提交和解决问题,参与评审等。
-
请访问这里了解更多SIG信息。
5.1 参与SIG组会议
如果您对CANN项目的任意SIG感兴趣,无论您是否熟悉我们的工作,都欢迎通过项目会议日历浏览和参与SIG组会议,这是极佳的参与CANN项目的方式。
如果您在项目会议系统中遇到了任何问题,欢迎通过Issue和我们联系。




