写给新手的 release-management:昇腾版本管理到底是啥?
写给新手的 release-management:昇腾版本管理到底是啥?
之前帮兄弟搞版本发布,他问我:“哥,CANN 的版本是怎么管理的?我想找 8.0 的 Release Notes,在哪看?”
我说看 release-management 仓库。
好问题。今天一次说清楚。
release-management 是啥?
release-management = CANN Release Management,昇腾的版本管理仓库。版本计划、Release Notes、发布时间表、兼容性矩阵都在里面。
一句话说清楚:release-management 是昇腾的"发布中心",你想找某个 CANN 版本的 Release Notes、知道下个版本啥时候发、看兼容性矩阵,都在这。
你说气人不气人,之前找 CANN 8.0 的 Release Notes 找了半天,现在一个仓库全搞定。
为什么要用 release-management?
三个字:找得到。
不用 release-management(到处找)
# 找 CANN 8.0 Release Notes
$ # 去官网找 → 找不到
$ # 去论坛找 → 找到了但版本不对
$ # 去 atomgit 找 → 找到了但散落在各个仓库
$ # 找了 2 小时,还没找全
# 问题:
# 1. 信息分散
# 2. 版本不对
# 3. 兼容性不清楚
# 4. 发布时间不知道
用 release-management(一个仓库全搞定)
# 克隆仓库
$ git clone https://atomgit.com/cann/release-management.git
$ cd release-management
# 看 CANN 8.0 Release Notes
$ cat releases/8.0/RELEASE_NOTES.md
# 输出:
# ========================================
# CANN 8.0 Release Notes
# ========================================
# 发布时间:2024-10-01
#
# ## 新特性
# - 200+ 新算子
# - 80+ 融合算子
# - MoE 融合
# - 通算融合
# - FlashAttention 优化
#
# ## 性能提升
# - FlashAttention:+15%
# - MoE:+25%
# - 推理吞吐:+30%
#
# ## 兼容性
# - PyTorch 2.1+
# - TensorFlow 2.14+
# - Ascend 910/910B
#
# ## 已知问题
# - 见 KNOWN_ISSUES.md
# ========================================
# 找了 2 分钟,全搞定
你说气人不气人,之前找 2 小时,现在 2 分钟。
核心概念就三个
1. 版本计划(Release Plan)
每个版本一个计划文件:
release-management/
├── releases/
│ ├── 8.0/
│ │ ├── RELEASE_PLAN.md # 发布计划
│ │ ├── RELEASE_NOTES.md # 发布说明
│ │ ├── COMPATIBILITY.md # 兼容性矩阵
│ │ └── KNOWN_ISSUES.md # 已知问题
│ │
│ ├── 8.5/
│ │ ├── RELEASE_PLAN.md
│ │ ├── RELEASE_NOTES.md
│ │ ├── COMPATIBILITY.md
│ │ └── KNOWN_ISSUES.md
│ │
│ └── 9.0/ # 未来版本
│ ├── RELEASE_PLAN.md
│ └── ...
│
└── UPCOMING_RELEASES.md # 未来版本计划
2. 发布计划(Release Plan)
# releases/8.0/RELEASE_PLAN.md
# CANN 8.0 Release Plan
## 时间线
- 2024-07-01:Feature Freeze
- 2024-08-01:Code Freeze
- 2024-09-01:RC1 发布
- 2024-09-15:RC2 发布
- 2024-10-01:正式发布 ✅
## 新特性
- 200+ 新算子
- 80+ 融合算子
- MoE 融合
- 通算融合
- FlashAttention 优化
## 负责人
- 总体协调:@zhangsan
- 算子:@lisi
- 框架适配:@wangwu
3. 兼容性矩阵(Compatibility Matrix)
# releases/8.0/COMPATIBILITY.md
# CANN 8.0 Compatibility Matrix
## 框架兼容性
| 框架 | 最低版本 | 推荐版本 | 说明 |
|------|---------|---------|------|
| PyTorch | 2.0 | 2.1+ | 完美支持 |
| TensorFlow | 2.12 | 2.14+ | 完美支持 |
| ONNX | 1.14 | 1.16+ | 完美支持 |
## 硬件兼容性
| 硬件 | 支持 | 说明 |
|------|------|------|
| Ascend 910 | ✅ | 完美支持 |
| Ascend 910B | ✅ | 完美支持 |
| Ascend 310 | ✅ | 推理专用 |
## 操作系统兼容性
| 操作系统 | 版本 | 支持 |
|---------|------|------|
| Ubuntu | 20.04 / 22.04 | ✅ |
| CentOS | 7.6+ | ✅ |
| EulerOS | 2.0+ | ✅ |
为什么要用 release-management?
三个理由:
1. 找得到
所有版本信息一个仓库全搞定:
# 找 CANN 8.0 的 Release Notes
$ cat releases/8.0/RELEASE_NOTES.md
# 找 CANN 8.5 的兼容性矩阵
$ cat releases/8.5/COMPATIBILITY.md
# 看未来版本计划
$ cat UPCOMING_RELEASES.md
2. 版本清晰
每个版本一个目录,不会搞混:
$ tree releases/
releases/
├── 8.0/
├── 8.5/
└── 9.0/ # 未来版本
$ # 不会搞混 8.0 和 8.5 的 Release Notes
3. 社区参与
Release Plan 是社区一起制定的:
# UPCOMING_RELEASES.md
## CANN 9.0 计划(2025-Q2)
### 新特性(社区投票选出)
1. **更多 Transformer 算子**(社区投票第1名)
2. **动态 Shape 优化**(社区投票第2名)
3. **量化感知训练**(社区投票第3名)
### 如何参与?
- 提 Issue:https://atomgit.com/cann/release-management/issues
- 社区投票:https://atomgit.com/cann/community/wiki/Voting
- 邮件列表:release@cann.org
你说气人不气人,社区一起决定下个版本有啥特性。
怎么用?代码示例
示例 1:找某个版本的 Release Notes
# 1. 克隆仓库
$ git clone https://atomgit.com/cann/release-management.git
$ cd release-management
# 2. 找 CANN 8.0 的 Release Notes
$ cat releases/8.0/RELEASE_NOTES.md
# 输出(节选):
# # CANN 8.0 Release Notes
#
# ## 新特性
# - 200+ 新算子
# - 80+ 融合算子
# - MoE 融合
# - 通算融合
# - FlashAttention 优化
#
# ## 性能提升
# - FlashAttention:+15%
# - MoE:+25%
# - 推理吞吐:+30%
# 3. 找 CANN 8.0 的兼容性矩阵
$ cat releases/8.0/COMPATIBILITY.md
# 输出(节选):
# ## 框架兼容性
# | 框架 | 最低版本 | 推荐版本 |
# |------|---------|---------|
# | PyTorch | 2.0 | 2.1+ |
# | TensorFlow | 2.12 | 2.14+ |
示例 2:看未来版本计划
# 1. 看 UPCOMING_RELEASES.md
$ cat UPCOMING_RELEASES.md
# 输出(节选):
# # Upcoming CANN Releases
#
# ## CANN 9.0(2025-Q2)
#
# ### 新特性(社区投票选出)
# 1. 更多 Transformer 算子
# 2. 动态 Shape 优化
# 3. 量化感知训练
#
# ### 时间线
# - 2025-01-01:Feature Freeze
# - 2025-02-01:Code Freeze
# - 2025-03-01:RC1
# - 2025-04-01:正式发布
# 2. 提建议
$ # 去 https://atomgit.com/cann/release-management/issues
$ # 提 Issue,标题:[Feature Request] 我想加 XXX 特性
示例 3:报告版本问题
# 1. 提 Issue
$ # 去 https://atomgit.com/cann/release-management/issues
$ # 用版本问题模板
# 2. 填模板
#
# Title: [BUG] CANN 8.0 在 Ubuntu 22.04 上安装失败
#
# ## 问题描述
# 安装 CANN 8.0 时,在 Ubuntu 22.04 上报错:...
#
# ## 环境
# - CANN 版本:8.0
# - 操作系统:Ubuntu 22.04
# - 硬件:Ascend 910
#
# ## 错误信息
# ERROR: dependency libxxx not found
#
# ## 解决方案(如果有)
# 手动安装 libxxx:sudo apt install libxxx
# 3. 提交
$ # 点 "Submit new issue"
示例 4:参与版本规划
# 1. 加入邮件列表
$ # 发邮件到 release@cann.org
$ # 主题:Subscribe
# 2. 参加社区会议
$ # 看 UPCOMING_RELEASES.md 里的会议时间
$ # 线上会议(Zoom/飞书)
# 3. 投票选特性
$ # 去 https://atomgit.com/cann/community/wiki/Voting
$ # 每个社区成员有 5 票
效率提升
用 release-management 的效率提升:
| 方式 | 找 Release Notes 时间 | 找兼容性矩阵时间 | 总耗时 |
|---|---|---|---|
| 不用 | 2 小时 | 1 小时 | 3 小时 |
| 用 | 2 分钟 | 1 分钟 | 3 分钟 |
提升:60x
你说气人不气人,之前找 3 小时,现在 3 分钟。
跟其他仓库的关系
release-management 在 CANN 架构里属于社区治理层,是所有版本信息的"发布中心"。
依赖关系:
release-management(版本管理)
↑ 提供版本信息
所有 CANN 仓库(ops-nn / ATB / ...)
解释一下:
- release-management:版本管理(Release Notes/兼容性矩阵/发布计划)
- 所有 CANN 仓库:依赖 release-management 提供版本信息
简单说:release-management 是版本的"档案馆"。想找某个版本的信息,就来这。
release-management 的核心内容
1. 版本目录
releases/
├── 8.0/
├── 8.5/
└── 9.0/
2. Release Notes
# RELEASE_NOTES.md
## 新特性
## 性能提升
## 兼容性
## 已知问题
3. 兼容性矩阵
# COMPATIBILITY.md
## 框架兼容性
## 硬件兼容性
## 操作系统兼容性
4. 发布计划
# RELEASE_PLAN.md
## 时间线
## 新特性
## 负责人
踩坑指南(亲身经历)
-
版本号
- CANN 版本号是
主版本.次版本 - 例如:8.0、8.5、9.0
- 别跟昇腾驱动版本搞混
- CANN 版本号是
-
兼容性
- 看
COMPATIBILITY.md - 别用错框架版本
- 不然会报奇怪的错误
- 看
-
已知问题
- 看
KNOWN_ISSUES.md - 遇到问题先查已知问题
- 说不定已经有人报告过了
- 看
-
未来版本
- 看
UPCOMING_RELEASES.md - 可以提 Feature Request
- 社区投票决定下个版本的特性
- 看
适用场景
什么情况下用 release-management:
- 找 Release Notes:要知道某个版本有啥新特性
- 看兼容性:要确定框架/硬件/操作系统是否兼容
- 报告版本问题:遇到版本相关的 bug
- 参与版本规划:想影响下个版本的特性
什么情况下不用:
- 写代码:不用看
- 调性能:不用看
总结
release-management 就是昇腾的"发布中心":
- Release Notes:每个版本的新特性
- 兼容性矩阵:框架/硬件/操作系统兼容性
- 发布计划:版本时间线
- 社区参与:一起决定下个版本的特性
更多推荐




所有评论(0)