当前位置: 首页 > news >正文

写给新手的 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(一个仓库全搞定)

# 克隆仓库$gitclone https://atomgit.com/cann/release-management.git $cdrelease-management# 看 CANN 8.0 Release Notes$catreleases/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$catreleases/8.0/RELEASE_NOTES.md# 找 CANN 8.5 的兼容性矩阵$catreleases/8.5/COMPATIBILITY.md# 看未来版本计划$catUPCOMING_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. 克隆仓库$gitclone https://atomgit.com/cann/release-management.git $cdrelease-management# 2. 找 CANN 8.0 的 Release Notes$catreleases/8.0/RELEASE_NOTES.md# 输出(节选):# # CANN 8.0 Release Notes## ## 新特性# - 200+ 新算子# - 80+ 融合算子# - MoE 融合# - 通算融合# - FlashAttention 优化## ## 性能提升# - FlashAttention:+15%# - MoE:+25%# - 推理吞吐:+30%# 3. 找 CANN 8.0 的兼容性矩阵$catreleases/8.0/COMPATIBILITY.md# 输出(节选):# ## 框架兼容性# | 框架 | 最低版本 | 推荐版本 |# |------|---------|---------|# | PyTorch | 2.0 | 2.1+ |# | TensorFlow | 2.12 | 2.14+ |

示例 2:看未来版本计划

# 1. 看 UPCOMING_RELEASES.md$catUPCOMING_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 ## 时间线 ## 新特性 ## 负责人

踩坑指南(亲身经历)

  1. 版本号

    • CANN 版本号是主版本.次版本
    • 例如:8.0、8.5、9.0
    • 别跟昇腾驱动版本搞混
  2. 兼容性

    • COMPATIBILITY.md
    • 别用错框架版本
    • 不然会报奇怪的错误
  3. 已知问题

    • KNOWN_ISSUES.md
    • 遇到问题先查已知问题
    • 说不定已经有人报告过了
  4. 未来版本

    • UPCOMING_RELEASES.md
    • 可以提 Feature Request
    • 社区投票决定下个版本的特性

适用场景

什么情况下用 release-management:

  • 找 Release Notes:要知道某个版本有啥新特性
  • 看兼容性:要确定框架/硬件/操作系统是否兼容
  • 报告版本问题:遇到版本相关的 bug
  • 参与版本规划:想影响下个版本的特性

什么情况下不用:

  • 写代码:不用看
  • 调性能:不用看

总结

release-management 就是昇腾的"发布中心":

  • Release Notes:每个版本的新特性
  • 兼容性矩阵:框架/硬件/操作系统兼容性
  • 发布计划:版本时间线
  • 社区参与:一起决定下个版本的特性
http://www.cnnetsun.cn/news/2519256.html

相关文章:

  • AI Agent Harness Engineering 的安全性挑战:提示词注入与防御
  • RK3568核心板开发全攻略:从硬件选型到量产落地的嵌入式实战指南
  • 内存核心频率停滞20年:从等效频率到延迟优化的性能真相
  • MCU+MPU双核架构在电力终端的设计:实时控制与智能计算的协同
  • RZ/T2H单芯多轴驱控一体方案:工业机器人实时控制与工业以太网集成
  • Office技巧速成:3个让效率翻倍的实用方法
  • eTs实战:从零构建猜大小游戏,掌握状态管理与事件绑定
  • Go语言实现DCI架构:用角色扮演解耦对象行为与数据
  • TranslucentTB:让Windows任务栏变身透明艺术品的完整指南
  • 同城中高端软体家具哪个品牌好
  • 2026年AI漫剧创作全链路培训测评:广东地区五家机构哪家更值得选?
  • Habitat具身智能仿真平台完全入门:从Sim到Lab,从环境搭建到配置详解
  • 从OpenAPI 3.1规范到实时交互式文档:ChatGPT驱动的API文档生成闭环体系(含性能压测数据对比)
  • Vibe Coding 工具怎么选?实测证明Trae才是Vibe Coding首选工具
  • Rust宏编程详解:从声明式到过程宏的完整指南
  • 程序员如何平衡工作与生活?我的“时间块”管理法
  • 《墨香情》手游官网入口:限时BOSS攻略,蹲点打法与掉落福利解析
  • 不只是写文案:AI创作工具的“全链路”能力正在成为新标准
  • 智能供应链革命——AI重塑泳装产业全链路
  • 实测百度网盘提速:从pandownload老玩家的视角,聊聊百度网盘不限速下载与解析的那些事
  • 新人还要绑定微信?
  • FlashAttention:让大模型训练快三倍的“拼菜师傅“
  • 因果本是叙事
  • 3分钟快速搞定:让Windows资源管理器完美显示iPhone照片缩略图
  • hls::stream作为高层次设计中最总要的建模
  • Linux awk 数据分析、字段截取实战
  • 思源黑体TTF构建指南:免费商用多语言字体的终极解决方案
  • NotebookLM高效工作流构建:从零到精通的7步实战框架(附真实项目复盘数据)
  • 如何快速掌握Windows本地实时语音转文字:TMSpeech完整教程
  • 曝OpenAI日亏超5亿,但Anthropic快盈利了