KADC 2026 系列分析 · 第 2 篇 · 软件生态 / 开发者战略
CUDA 的护城河到底多深
2026 年,NVIDIA 的市值在 AI 芯片市场上依然占据绝对主导。但如果只看芯片性能,这个主导地位并不牢固——AMD MI400、Google TPU v6、华为昇腾 910D 都在特定基准上逼近甚至局部超越 H200。
真正的壁垒不在芯片,在 CUDA。
CUDA 从 2007 年发布至今,积累了近 20 年的开发者生态。全球 AI 研究者的代码、论文、教程、Stack Overflow 问答,绝大多数围绕 CUDA 构建。PyTorch、TensorFlow、JAX 这些框架的底层算子,深度绑定 CUDA 的编程模型。一个 AI 工程师从入门到能写出高效的训练脚本,整个学习路径上的每一步都是 CUDA 感知的。
这不是技术偏好,是肌肉记忆。
昇腾要挑战的不是一个芯片,是一整套开发习惯。这比硬件追赶难一个数量级。硬件差距可以用工程资源和时间追赶,但开发者习惯一旦形成,迁移成本是指数级的。
理解了这一点,才能理解 CANN 在 KADC 2026 上宣布全面开源的战略含义。
一、CANN 的三次战略转向
CANN(Compute Architecture for Neural Networks)是昇腾的算子加速库和计算架构,类比 NVIDIA 生态中的 cuDNN + CUDA Toolkit。它的演进路径,映射了华为对"如何建设芯片软件生态"这个问题的认知迭代。
第一次转向(2020-2023):自建生态——复制 CUDA 路线的尝试
昇腾最早的战略是明确的:用 MindSpore + CANN 构建一套完整的自有技术栈,走 NVIDIA 当年的路——自有框架、自有算子库、自有编程模型,形成闭环。
这个逻辑在纸面上自洽:如果 CUDA 证明了一体化生态的价值,那昇腾为什么不能再来一遍?
但现实很骨感。
开发者面对的是一套全新的编程范式——Ascend C 的语法、CANN 的算子开发流程、MindSpore 的图模式——每一个环节都需要重新学习。而 CUDA 的生态已经覆盖了几乎所有常见场景,开发者迁移的动力只有一个:昇腾上的性能优势足够大,或者算力成本足够低。
在 2022-2023 年的实践中,这个条件并没有满足。社区反馈集中在几个痛点:
- 移植成本高:一个在 CUDA 上跑通的模型,迁移到昇腾平均需要数周,涉及算子适配、内存管理差异、调试工具链不完善等问题
- 文档跟不上:官方文档覆盖了基础用例,但遇到边缘 case 时,开发者只能翻源码或等社区响应
- 生态飞轮转不起来:用户少→贡献少→问题修复慢→用户更少,典型的冷启动困境
到 2023 年底,这个策略的局限性已经很清楚:在一个成熟生态面前,用另一套等价但不兼容的体系去竞争,迁移成本远大于性能收益。
第二次转向(2024-2025):分层解耦——从"替代 CUDA"到"兼容 PyTorch"
2024 年开始,华为的策略出现明显调整。核心变化是两点:
一是框架层拥抱 PyTorch。 不再强推 MindSpore,而是提供 PyTorch 后端适配,让昇腾成为 PyTorch 的可选加速设备。开发者不需要改训练脚本,只需要替换 backend。
二是 CANN 内部开始分层解耦。 算子库、通信库、运行时从一体化发布走向独立升级,降低耦合度。
这个方向是对的,但执行中暴露了一个深层矛盾:兼容性和性能不可兼得。
PyTorch 的算子调用最终要映射到 CANN 的底层实现。在 CUDA 上,这个映射经过多年优化,几乎没有额外开销。但在昇腾上,适配层引入的性能损耗在一些场景下不可忽视。开发者得到的体验是"能跑,但不够快"。
这个阶段本质上还是"来昇腾上写代码"的思路——昇腾是目的地,开发者需要做适配迁移。只是迁移成本比第一阶段低了。
但为什么不是零?
第三次转向(2026 KADC):全面开源 + 兼容主流生态——让昇腾去开发者那里
KADC 2026 上 CANN 的发布,标志着一个根本性的策略转变:
- 50+ 代码仓、800+ 算子全面开源
- Triton 接口 100% 兼容,600+ 算子覆盖
- TileLang 接口 100% 兼容,300+ 算子覆盖
- PyTorch 2300+ API 对齐
- 运行时、算子编译全层级接口开放
- 算子与通信库独立升级
把所有数据放在一起看,核心信息只有一个:不再要求开发者迁移到昇腾,而是让昇腾适配到开发者已经在用的工具链。
这和前两次转向有本质区别。第一次是"用我的生态替代 CUDA",第二次是"你来昇腾上继续用 PyTorch",第三次是"你该用啥用啥,昇腾在底层支持"。
这个转变背后不是技术成熟度的自然演进——它是华为对三个现实条件的回应。
二、为什么是现在:CANN 开源的三个前提条件
条件一:算子覆盖度达到实用阈值。
800+ 算子开源、Triton 600+ 算子、TileLang 300+ 算子、PyTorch 2300+ API——这些数字不是随便堆的。它们覆盖了当前主流大模型训练和推理中 90% 以上的算子需求。CANN 在技术上已经跨过了"勉强能用"的门槛,进入了"大部分场景够用"的阶段。
开源一个半成品只会暴露短板,加速信任崩塌。华为等到算子覆盖度足够才开源,说明它对当前的技术成熟度有信心——至少在主流场景下。
条件二:跨平台编程框架的成熟提供了技术桥梁。
Triton 和 TileLang 不是昇腾自己的技术,而是社区中已经存在的跨平台编程框架。Triton 由 OpenAI 主导,已成为 PyTorch 2.x compile 的核心后端;TileLang 由北大团队开发,在 DeepSeek V4 的算子实践中验证了跨平台能力。
昇腾不需要从零建一个新的编程范式来对抗 CUDA,它只需要支持这些已经在社区中获得认可的范式。这大幅降低了战略执行的工程复杂度。
条件三:时间窗口在收窄。
NVIDIA 被 GPU 产能瓶颈和美国出口管制政策牵扯大量精力,全球市场(尤其中国市场)对非 NVIDIA 算力的需求在 2025-2026 年达到一个高点。同时,DeepSeek 等团队的实践证明了国产算力在特定场景下的可行性,市场信心初步建立。
华为需要在这个窗口期内把软件生态的短板尽可能拉平,否则一旦 NVIDIA 产能恢复或政策松动,用户会迅速回流。
三个条件同时满足,才有了 CANN 的全面开源。这不是一次技术秀,是一个经过计算的时机选择。
三、Triton/TileLang 兼容的深层含义
Triton:不是另一个 CUDA,是 CUDA 之后的新范式
Triton 在 AI 编程生态中的地位被很多观察者低估了。
它不是又一个 GPU 编程语言。Triton 的设计哲学是"让不懂 GPU 架构的人也能写出高效的算子"——它提供的是 Tile 级的编程抽象,开发者只需要描述"在数据块上做什么计算",不需要操心 shared memory 管理、warp 调度、寄存器分配这些底层细节。
这个定位恰好击中了 AI 算子开发的核心痛点:大部分 AI 研究者不懂 CUDA 编程,但他们需要自定义算子来实验新的模型架构。Triton 让他们跳过了 GPU 编程的陡峭学习曲线。
更关键的是,Triton 已经成为 PyTorch 2.x torch.compile 的核心编译后端。这意味着用 PyTorch 的用户,即使不直接写 Triton 代码,也在间接使用 Triton。它的渗透率比表面看起来大得多。
昇腾实现 Triton 接口 100% 兼容,600+ 算子覆盖,含义很直接:用 Triton 写的算子,不需要任何修改就可以在昇腾上跑。 这不是简单的"适配",是直接接入了 CUDA 之外最大的 AI 编程范式。
但需要正视一个数据:Triton 算子在昇腾上的性能是原生 Ascend C 的 0.6-0.9 倍。
这个差距意味着什么?在研究和实验阶段,0.6-0.9 倍完全可以接受——能跑通、能验证、成本可控。但在大规模商业化推理中,30-40% 的性能损耗可能意味着数百万甚至上千万的成本差异。
华为的赌注是:随着昇腾对 Triton 的后端优化持续迭代,这个性能差距会逐步缩小。而 Triton 的抽象层本身也在进化,未来可能提供更多硬件特定优化的接口。但至少目前,这是一个真实的短板,不是营销话术能抹平的。
TileLang:DeepSeek V4 的影子
TileLang 是北大团队开发的 Tile 级编程框架,和 Triton 类似但设计哲学有所不同。它在 DeepSeek V4 的算子实践中被广泛使用——这不是巧合。
DeepSeek V4 的训练和推理需要大量定制算子,而这些算子需要在多种硬件平台上高效运行。TileLang 的 Developer 模式下,不同平台的算子实现只有少量代码差异——这意味着同一套算子逻辑可以在不同硬件上以接近原生的性能运行。
昇腾支持 TileLang 300+ 算子,接口 100% 兼容。这个事实需要和 DeepSeek V4 联系起来看:
昇腾不是在"适配"DeepSeek V4——它是在利用一个已经被 DeepSeek 验证的跨平台编程框架,把适配成本降到最低。DeepSeek 用 TileLang 写的算子,天然具备跨平台能力。昇腾只需要做好 TileLang 后端的优化,DeepSeek 的整个算子生态就可以迁移过来。
这是一种聪明的生态策略:不自己造桥,用别人已经验证过的桥。
CANNBot:算子开发的自动化前沿
CANNBot 是华为展示的算子 Agent——3 小时生成 Vector 算子,1 天从生成到部署,效率提升 5 倍以上。
这不是一个简单的代码生成工具。算子开发是芯片软件生态中最耗人力的环节之一:每个新算子需要理解硬件架构、优化内存访问模式、处理边界条件。传统流程中,一个经验丰富的工程师从开发一个新算子到上线,通常需要 1-2 周。
CANNBot 把这个周期压缩到 1 天。如果这个数据在真实场景中可复现,它的影响是结构性的:
算子生态的补齐速度不再取决于人力,而是取决于 AI 辅助工具的成熟度。 NVIDIA 也在做类似的事——CUDA-Q 就是量子计算领域的算子自动化尝试。但华为把 AI 辅助算子开发放在了通用 AI 芯片的语境下,范围更广,紧迫性更强。
风险在于:自动生成的算子质量能否达到生产级要求?3 小时生成的 Vector 算子可以跑通 demo,但在大规模训练中是否稳定?这些都需要更多第三方验证。
四、开发者体验:从"能跑"到"好用"
2 分钟跑通首个 Demo
这个数据的含义被严重低估了。
让一个从未接触过昇腾的开发者在 2 分钟内跑通 demo,需要什么?社区环境的预配置、算力资源的即时分配、示例工程的零配置启动、文档和报错信息的即时引导——每一个环节都需要工程化到近乎无感。
这不是一个小工程。它需要昇腾社区从"工具提供商"转变为"体验提供商"。NVIDIA 在这个维度上花了多年时间优化 CUDA Toolkit 的开箱体验,昇腾要在短时间内追赶,工程投入量极大。
算力资源投放:1000+ 卡免费,10000 卡总量
1000+ 昇腾卡免费算力、100 卡时/人初始额度、10000 卡总投放。这个力度直接对标 Google TPU Research Cloud 和 NVIDIA Digits 计划。
对比来看:
- Google TPU Research Cloud:面向学术研究,免费 TPU 算力,但申请流程长、排队久
- NVIDIA Digits:开发者预览版算力,覆盖面有限
- 昇腾的方案:100 卡时初始额度意味着注册即用,没有审批流程,即时上手
这个策略的精明之处在于:它针对的不是算力饥渴的大团队(100 卡时对大模型训练远远不够),而是想"试一试"的个人开发者和小团队。降低第一次接触的门槛,比提供大量免费算力更重要。
vLLM / SGLang 原生合入:不是"二等公民"
这两个数据值得单独拎出来说:
- vLLM:昇腾是唯一自主创新硬件厂商原生合入主干
- SGLang:昇腾是唯一自主创新非 GPU 硬件厂商原生合入主仓
"原生合入"和"适配层"是本质区别。适配层意味着昇腾是外部补充,代码在 fork 或插件中维护;原生合入意味着昇腾是 vLLM/SGLang 的一等公民,和 CUDA 处于同一代码路径,享受同样的 CI/CD、测试覆盖和版本同步。
这对于开发者体验的影响是决定性的:用 vLLM 部署推理服务的团队,切换到昇腾硬件不需要改任何配置——不是"也可以跑",是"原生支持"。
长序列首 Token 时延降低 30%,是昇腾在推理场景下的一个实际性能亮点。在 LLM 部署中,首 Token 时延直接影响用户体验,30% 的改善在商业部署中有直接的价值。
五、华为赌的是什么:战略判断
赌注一:算子生态的"够用"阈值
NVIDIA 的 CUDA 生态有数万个算子,覆盖了从图像处理到量子模拟的几乎所有并行计算场景。昇腾不需要对齐这个规模。
AI 训练和推理的核心算子集中在有限几类:矩阵乘法、卷积、注意力机制、归一化、激活函数、通信原语。覆盖这些核心算子的高效实现,就覆盖了 90% 以上的实际需求。
华为的赌注是:800+ 开源算子 + Triton/TileLang 兼容 + 社区贡献,足以跨越"够用"阈值。 一旦跨过这个阈值,算子数量的边际收益急剧递减。CUDA 有 5000 个算子和 CANN 有 800 个算子,对主流大模型训练来说,差异可能不大。
赌注二:开源社区的力量
CANN 开源后,社区贡献的算子和优化可能比华为内部团队更快地填平长尾场景。这是开源的基本逻辑:使用者最清楚自己需要什么。
但开源社区的维护对华为的工程能力提出了新要求。社区期望的响应速度(issue 在 24-48 小时内得到回应、PR 在一周内 review)可能超过华为传统的工程节奏。开源不是发布了事,它要求持续的社区运营、透明的路线图、对社区贡献的尊重和激励。
华为在开源运营方面的经验主要来自 MindSpore 和 openEuler,但 CANN 的开发者群体更底层、更专业、要求更高。这是一场新的考验。
赌注三:时间窗口
NVIDIA 在 2024-2025 年面临两个牵制:GPU 产能瓶颈导致交付周期拉长,美国出口管制政策持续收紧。这两个因素在全球市场(尤其中国和东南亚)创造了对非 NVIDIA 算力的需求窗口。
但窗口不会永远开着。NVIDIA 的产能在扩张,Blackwell Ultra 和 Rubin 的发布节奏在加速。一旦供需平衡恢复,用户回流的成本很低——因为 CUDA 生态还在那里。
华为需要在窗口期内完成两件事:一是软件生态从"能用"到"好用"的跨越,二是建立足够的用户粘性(通过开源社区、开发者工具、算力成本优势),使得窗口关闭后用户不会大规模流失。
六、风险:几个不能回避的问题
风险一:0.6-0.9 倍的性能差距。
Triton 算子在昇腾上的性能是 Ascend C 的 0.6-0.9 倍。在研究和实验阶段这可以接受,但在大规模商业化推理中,30-40% 的性能差距意味着算力成本增加 30-40%。对于已经在 NVIDIA 生态中建立了优化 pipeline 的企业,这个差距是迁移的最大阻力。
华为需要证明这个差距在快速缩小——不是通过 PPT,而是通过可复现的公开基准测试。
风险二:开源后的社区治理。
50+ 代码仓同时开源,意味着华为需要同时维护大量的社区运营。issue 洪水、PR 积压、版本兼容性管理——每一个都是工程组织的挑战。如果社区体验差,开源的效果会适得其反:开发者试了一次,体验不好,离开,而且会告诉同行。
风险三:NVIDIA 不会坐视。
CUDA 的迭代速度非常快。NVIDIA 每一代 GPU 架构都伴随新的软件特性和优化。昇腾在追赶 CUDA 的同时,CUDA 本身也在快速进化。这不是一个静态靶,是一个高速移动的靶。
NVIDIA 可能的应对策略包括:加速 CUDA 对新模型架构的支持(让新算子更快进入 CUDA)、加强对 Triton 的控制(Triton 毕竟是 OpenAI 主导的,而 NVIDIA 与 OpenAI 有深度合作)、在开发者社区中强化 CUDA 的护城河。
七、关键验证节点
判断 CANN 开源的实际效果,需要观察三个独立信号:
1. DeepSeek V4 在昇腾上的推理性能公开基准测试。
DeepSeek 是目前最有影响力的国产大模型之一。如果 DeepSeek V4 能在昇腾上达到接近 NVIDIA 硬件的推理性能,并且过程透明、可复现,它将是最有力的生态验证。
2. 第三方对 Triton/TileLang 兼容性的独立验证。
华为自己公布的兼容性数据需要独立验证。具体来说:一个从未接触昇腾的团队,用 Triton/TileLang 写的算子,在昇腾上能跑通多少?性能如何?遇到问题时的调试体验如何?这些信息只能从第三方使用报告中获得。
3. 开源社区的实际贡献量和 issue 响应速度。
开源后 3-6 个月内的社区活跃度是关键指标:非华为开发者贡献了多少 PR?issue 的平均响应时间是多少?有多少 issue 被关闭?这些数据反映的不是技术能力,而是社区运营能力和华为的投入诚意。
结语:从"建生态"到"进生态"
CANN 的三次战略转向,折射的是华为对芯片软件生态竞争本质的认知深化:
第一次,试图复制 CUDA 的成功路径——自建闭环生态。 失败了,因为 CUDA 的优势不只是技术,是 20 年的开发者习惯积累,不可能用另一套等价体系去替代。
第二次,从对抗转向兼容——拥抱 PyTorch,降低迁移成本。 方向对了,但还是把昇腾当目的地,要开发者"迁移过来"。
第三次,从"来我这里"变成"我去你那里"。 开源 CANN,兼容 Triton/TileLang/PyTorch,让开发者用他们已经熟悉的工具,底层跑昇腾。昇腾不再是需要"迁移到"的平台,而是渗透到开发者现有工作流中的底层加速。
从"建生态"到"进生态",一个字的差别,是整个战略逻辑的重构。
能不能成,取决于执行。开源只是开始,社区运营、性能优化、开发者体验、生态信任——每一个环节都需要持续的投入和透明的态度。昇腾已经走出了最关键的一步,但路还很长。
CUDA 的护城河不是一天建成的,也不会一天被填平。但 CANN 的全面开源,至少说明昇腾找到了正确的方向:不是在护城河外另建一座城堡,而是把桥修到对方的城市里。
本文为技术分析,基于 KADC 2026 公开信息。所有引用数据来源于华为官方发布,独立验证尚待进行。文中判断代表作者观点,不构成投资建议。
