第一次想给昇腾CANN做贡献,最让我头秃的是不知道从哪下手:GitHub仓库这么多,到底改哪个?PR怎么提?代码规范是啥?

后来混熟了才发现,cann-community是昇腾AI的社区大本营,所有社区项目、贡献指南、行业应用案例都在这里。

cann-community是什么

cann-community是昇腾CANN生态的社区项目聚合平台,提供社区项目、贡献指南、行业应用案例。

在CANN五层架构里,cann-community位于:

  • 第0层(应用使能层):作为社区平台,被开发者调用
  • 聚合所有仓库:cann-docs、cann-samples、cann-tools、cann-blogs等
  • 提供贡献指南:从"环境搭建"到"PR提交流程",手把手带你做贡献

为什么需要社区平台

你可能会问:昇腾CANN的GitHub仓库不是开源的吗?为什么还需要cann-community?

答案在聚合与降低门槛

没有社区平台的痛点

  1. 太分散核心仓库在atomgit.com/cann,文档在cann.io,教程在B站. 到处都是,找不到系统性的学习路径。
  2. 门槛高:想做贡献,但不知道从哪下手,PR流程是啥,代码规范是啥.
  3. 缺案例:行业应用案例(智慧城市、医疗、金融)找不到,只能自己摸索。

cann-community的优势

  1. 系统性:从入门到精通,有完整学习路线
  2. 低门槛:贡献指南手把手教你提PR、写文档、做测试
  3. 有案例:行业应用案例(智慧城市、医疗、金融)都有,直接参考

cann-community的核心内容

cann-community提供以下核心内容:

1. 社区项目(Community Projects)

cann-community聚合了以下社区项目:

项目 内容 适用人群
cann-docs 社区贡献的文档(API、教程、FAQ) 所有人
cann-samples 社区贡献的代码示例(从"Hello World"到"大模型推理") 初学者
cann-tools 社区贡献的工具(ATC插件、msadvisor插件、cann-op-devkit模板) 开发者
cann-blogs 社区贡献的技术博客(算子优化、性能调优、行业趋势) 所有人
cann-community 社区项目聚合平台(本文档) 所有人

关键点:所有社区项目都开源atomgit.com/cann),可以随时提PR贡献。

2. 贡献指南(Contribution Guide)

cann-community提供了以下贡献指南:

贡献流程

  1. 环境搭建:安装CANN 8.0、配置环境变量、跑通第一个样例
  2. 选择贡献类型:文档贡献、代码贡献、博客贡献
  3. Fork仓库:Fork要贡献的仓库、Clone到本地、创建分支
  4. 做贡献:改错别字、修bug、加功能、写博客
  5. 提交PR:提交改动、提PR、等待审核(3个工作日内)

关键点:贡献指南覆盖了文档贡献、代码贡献、博客贡献三种类型,手把手教你提PR。

3. 行业应用案例(Industry Use Cases)

cann-community提供了以下行业应用案例:

智慧城市(目标检测)

  • 用PP-YOLOe做目标检测
  • 性能:95 FPS(Ascend 910)
  • 代码:from cann.samples import PP_YOLOe

医疗(语义分割)

  • 用DeepLabV3做语义分割
  • 性能:18 images/s(Ascend 910)
  • 代码:from cann.samples import DeepLabV3

金融(时间序列预测)

  • 用LSTM做时间序列预测
  • 性能:1250 samples/s(Ascend 910)
  • 代码:from cann.samples import LSTM

关键点:所有行业应用案例都有完整代码性能基准


【唯一的代码段 - 完整贡献流程】

实战:给cann-community做贡献(完整流程)

# ========== 第1步:Fork仓库 ========== 
# 1. Fork仓库(在atomgit.com/cann/cann-docs点Fork) 
# 2. Clone到本地 
git clone https://atomgit.com/your-username/cann-docs.git 
cd cann-docs 

# 3. 创建分支 
git checkout -b fix-typo-in-readme 

# ========== 第2步:修错别字 ========== 
# 打开README.md 
vim README.md 

# 找到错别字(假设第10行有错别字) 
# 原文:昇腾CANN是华为开放的开源AI计算架构 
# 改正:昇腾CANN是华为开源的AI计算架构(删除"开放") 

# 保存退出 

# ========== 第3步:提交改动 ========== 
# 1. 添加改动 
git add README.md 

# 2. 提交改动 
git commit -m "fix: correct typo in README.md (remove redundant '开放')" 

# 3. 推送到远程 
git push origin fix-typo-in-readme 

# ========== 第4步:提PR ========== 
# 1. 打开PR页面(在atomgit.com/your-username/cann-docs/pulls/new) 
# 2. 填写PR描述: 
# - 标题:fix: correct typo in README.md 
# - 描述:删除了README.md第10行中冗余的"开放"二字 
# - 关联Issue:无 
# 3. 提交PR 

# ========== 第5步:等待审核 ========== 
# 1. 等待审核(社区维护者会在3个工作日内审核) 
# 2. 如果审核通过,你的PR会被合并 
# 3. 如果审核不通过,根据反馈修改后重新提交 

代码段解释(用文字讲解)

  1. 第1-2步:Fork仓库 + 修错别字(标准流程)
  2. 第3步:提交改动(git add + commit + push)
  3. 第4步:提PR(填写标题、描述、关联Issue)
  4. 第5步:等待审核(3个工作日内,审核通过/不通过)

常见踩坑点

坑1:PR被拒

症状:PR提交后,被维护者拒绝。

原因

  1. 改动不符合代码规范(如缩进、命名等)
  2. 改动没有测试(如没跑通cann-samples的测试)
  3. 改动描述不清晰(如PR标题写"fix bug",但没说是什么bug)

解决方案

  1. 看代码规范(在cann-community/contribution-guide/code-style.md)
  2. 跑通测试(在cann-samples/run_tests.sh)
  3. 写清晰的PR描述(标题 + 描述 + 关联Issue)

坑2:环境搭不起来

症状:Fork仓库后,本地环境搭不起来(CANN安装失败、环境变量配置不对等)。

原因

  1. 系统不满足要求(如Ubuntu版本太低)
  2. 环境变量配置不对(如ASCEND_HOME没设置)

解决方案

  1. 看环境要求(在cann-community/contribution-guide/environment-setup.md)
  2. 跟着教程搭环境(在cann-learning-hub/environment-setup.md)

坑3:不知道贡献啥

症状:想做贡献,但不知道从哪下手。

原因

  1. 对昇腾CANN不熟悉(不知道有哪些仓库、哪些项目)
  2. 技能不匹配(如只会写文档,不会写代码)

解决方案

  1. 看社区项目列表(在cann-community/projects.md)
  2. 看贡献类型(文档贡献、代码贡献、博客贡献)
  3. 从简单的开始(如修错别字、补文档)

下一步

想深入学怎么给昇腾CANN做贡献?cann-community有系列教程,从"环境搭建"到"PR提交流程",手把手带你做贡献:

https://atomgit.com/cann/cann-community

顺便说一句,如果你想进入昇腾CANN社区,cann-community是必看的。不做贡献,永远只是"使用者",做贡献才能成为"贡献者"。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐