Workflow
Ascend C
icon
搜索文档
拆解CANN:当华为决定打开算力的「黑盒」
机器之心· 2025-12-19 14:38
文章核心观点 - 华为昇腾将其底层AI基础软件CANN全面开源开放,旨在通过降低AI算力开发门槛、提供灵活的开发工具和构建开放生态,挑战现有计算架构格局,并推动一个独立于CUDA的AI算力生态快速成长 [2][31] CANN开源的核心价值与目标 - CANN作为连接上层AI框架与底层AI芯片的桥梁,其开源使开发者无需关心芯片细节即可调用底层算力,获得了定义算力的权力 [2] - 开源旨在构建“算力多元世界”,不仅仅是替代,更是邀请开发者共同构建新生态 [31] - 一个不同于CUDA路径的AI算力生态正在基于CANN快速成长 [31] 降低开发门槛:实现“AI算子开发自由” - CANN支持与PyTorch、TensorFlow、MindSpore、PaddlePaddle等主流AI框架无缝对接,并开放GE图开发接口,允许自定义图结构 [5] - 大模型支持覆盖广泛,包括Llama、Mistral、Phi等海外模型及Qwen、DeepSeek、GLM等国产模型,总计超过50种,并参与了超过10个大模型开源社区的生态构建 [6] - 为不同背景开发者提供三条算子开发路径 [7] - **路径一(Triton生态)**:实现与Triton深度对接,支持Python语法编写算子,原有Triton代码可低成本迁移至昇腾NPU [9] - **路径二(Ascend C)**:提供采用C/C++语法风格的原生编程语言,开放底层资源管理接口,允许原子级控制以追求极致性能 [10] - **路径三(模板库)**:提供基于Ascend C的CATLASS算子模板库,通过参数配置快速生成矩阵乘等算子,无需重写复杂逻辑 [11][13] - 针对MoE模型推出MLAPO融合算子,将多算子计算融合为单个高效算子,在DeepSeekV3模型量化场景下,能将计算耗时从109us缩减至45us,带来整网性能提升20% [13][15] - 已在AtomGit开放多个核心仓库,并发布官方容器镜像,提供开箱即用的开发环境 [16] - 已预置超过1400个基础算子、100多个融合算子及15个通信算法,提供“开箱即用”能力 [16] 架构创新:分层解耦带来的灵活性 - CANN的核心创新在于宏观架构上的“分层解耦”,将软件栈拆解为多个功能正交、独立演进的组件 [19][22] - 分层解耦贯穿全栈,从底层驱动到上层编译器、加速库,实现物理松耦合,允许按需引入或升级特定组件,降低系统集成和定制门槛 [22][23] - 具体变化体现在: - **加速库组件化**:算子库被精细拆分为ops-math、ops-nn、ops-cv、ops-transformer等独立组件,改变了过去“全量算子一个包”的发布方式 [24] - **通信库与图引擎独立**:HCCL通信库开放通信算子和框架层,支持自定义通信算法;GE图引擎开放图编译和执行接口,支持自定义图融合策略 [26] - **运行时极简化**:Runtime层剥离冗余模块,实现核心功能最小化,并开放aclGraph接口支持图模式下沉,减少Host与Device间交互开销 [27][28] - 架构解耦后,CANN共有20余个安装包,支持各功能独立演进和编译升级,使开发者能在模型、算子、内核、底层资源等多层级分别进行优化 [29] 开源进展与社区现状 - CANN的全面开源开放正在加速推进,其在AtomGit的代码库非常活跃,几乎每天都有新动态 [33] - 截至目前,CANN项目下已有27个子项目,总star数超过3700,总下载量突破35万 [35] - 开源版图持续扩大,例如核心组件GE(图引擎)以及新型编程范式PyPTO框架等正在建设中 [35] - 开源组件覆盖算子库、通信库、图引擎、编程语言和运行时等多个关键领域 [36]
「从追赶者到引领者,路有多远?」 我们和CANN一线开发者聊了聊
机器之心· 2025-09-28 12:50
文章核心观点 - AI行业竞争已从单纯算力比拼转向围绕软件、开发者与生态的“护城河”之战 [1] - 华为昇腾异构计算架构CANN的全面开源是国产AI基础设施在生态战略上的一次深刻自我革命,旨在打破封闭模式,构建开放社区 [4] - CANN开源的核心价值在于“破壁与赋能”,即打破技术黑箱实现透明度革命,并将创新主动权交还给开发者,这是其从“可用”迈向“首选”的必由之路 [21][23] - 构建成功的计算生态关键在于为最广泛的开发者群体提供稳定、通用、高效的底层工具,即找到“最大公约数”,并激发社区的“原生创新” [18][44] CANN的演进历程与挑战 - CANN早期开发阶段被形容为“刀耕火种”,技术门槛极高,2018年的1.0版本甚至要求开发者在接近汇编层面编程,生产效率极低 [11] - 平台架构经历剧烈迭代,曾有团队花费一年编写的应用案例因底层软件推倒重来而需全部重做,凸显早期生态建设的不稳定性 [13] - 经过数年迭代,工具链完备性显著提升,例如Ascend C编程语言已与CUDA C基本对标,性能分析工具Profiling能将NPU利用率从50%逼近90%的理论峰值 [15] - 尽管工具进步,开发者仍面临系统性瓶颈,如模型精度难以复现(收敛结果可能相差十几个百分点)、缺乏高级调试功能、软件包过于庞大耦合导致迭代缓慢 [17] 开源带来的变革与机遇 - 全面开源意味着编译器、运行时等核心组件代码完全可见,开发者可洞察硬件运行逻辑,进行更深层次性能优化,解决如IR生成不匹配等顽疾 [24] - 开源深度和广度超越行业领导者,英伟达CUDA核心组件并未完全开放,而CANN全面开源能提供更大的探索和创新空间 [25] - 开源为产学研融合提供机遇,高校研究者可直面产业真实痛点,将解决实际问题转化为科研成果,形成良性循环 [26] - 开源是培养下一代开发者的最佳土壤,使青年开发者能从使用者转化为贡献者,在真实世界级项目中锻炼成长 [28] - 开源将加速高效易用工具的诞生,如算子模板库CATLASS将开发门槛从硬件专家级降至模板调参级,效率提升5到10倍 [30] CANN的生态战略与布局 - 生态战略核心是“分层解耦”,将过去庞大的软件包拆分为20多个细颗粒度组件包,允许开发者按需更新,提升灵活性与敏捷性 [37][40] - 采取差异化开放策略:对运行时、编译器、Ascend C等需要创新自由度的组件进行全量代码开源;对需保持稳定性的虚拟指令集则开放接口 [39][40] - 通过成立CANN技术指导委员会(现有26位成员)吸纳外部专家共同决策,标志其从企业主导走向社区共治 [39] - 公司实施系统性人才培养举措,与国内16所顶尖高校合作,提供算力资助,并举办训练营、创新算子挑战赛(年度总决赛奖金池超100万元)等活动 [42] - 公司承诺每年投入1500P算力和3万片开发板,与全球开发者共创共享昇腾开源生态 [45] 未来展望 - CANN当前阶段重要任务是对标CUDA,补齐功能短板,但最终目标并非成为替代品,而是孕育自身的“原生创新”能力 [44] - 国产AI生态真正繁荣的标志是下一个类似FlashAttention的革命性创新诞生于CANN生态,使其从追赶者变为引领者 [29][44] - 生态建设的评判标准正从“能做出什么”转向“开发者愿意用此创造什么”,其未来取决于能否构建开发者友好的社区,完善文档、教程和示例仓库,形成雪球效应 [47] - 全量算子将于9月底开源至GitCode社区,领域加速库、图引擎等软件代码将于12月底陆续上仓,完成开源开放 [48]