基于华为昇腾AI处理器的CANN生态全景图系列(一):为什么要有CANN?如何打破英伟达CUDA生态技术的壁垒
摘要:文章分析了AI芯片生态现状,重点对比英伟达CUDA生态与华为昇腾NPU的竞争格局。英伟达通过CUDA构建了包含开发库、运行时和驱动的完整软件栈,形成了强大的技术壁垒。目前全球90%的AI应用基于CUDA生态训练,使其成为英伟达的核心竞争力。同时,文章介绍了主流AI框架TensorFlow和PyTorch的特点及适用场景,指出PyTorch在学术研究领域占据主导地位。最后提出关键痛点:由于CU
在 AI 加速器 NPU 芯片生态中,CANN(Compute Architecture for Neural Networks)可以看作是连接“高层 AI 框架”(例如 PyTorch、TensorFlow、MindSpore)与“底层硬件”(例如 Ascend AI Processor)之间的“翻译 + 优化 + 调度 + 执行”桥梁。

1. 英伟达CUDA生态:
英伟达最开始的印象就是一个卖游戏显卡,但是自从2006年,英伟达推出了CUDA(Compute Unified Device Architecture),它不仅仅是一个计算平台,更是一个庞大的技术生态系统。英伟达通过CUDA,构建了一个包括开发库(Libraries)、运行时(Runtime)和驱动(Driver)在内的完整软件栈。
目前全球的AI应用,有90%是基于CUDA生态训练出来的,所以GPU是英伟达的强项,但CUDA更是英伟达的护城河,其它任何想挑战英伟达的厂商,不仅仅要在GPU上挑战它,还要在CUDA这样的生态上挑战它,可以说是困难加倍。
而在中国市场,由于英伟达的高性能GPU都无法销售过来,所以国内一直在搞国产替代,要替代的不仅仅是英伟达的GPU,还有英伟达的CUDA。
那么,为了打破技术的壁垒,NPU方面,大家都清楚的,华为有自己的AI芯片,也就是昇腾芯片,对标英伟达的A100这样的主流芯片,已经不成问题了,甚至在某些方面性能、能效比优势显著。

主流的一些AI模型/AI框架介绍:
近几年,随着深度学习指数级发展,深度学习的框架使用在人工智能领域也起着举足轻重的作用,这其中包括Tensoflow、Pytorch、Keras、paddle等等。
1. TensorFlow、PyTorch:
Tensoflow:
TensorFlow由Google智能机器研究部门研发;TensorFlow编程接口支持Python和C++。随着1.0版本的公布,相继支持了Java、Go、R和Haskell API的alpha版本。2.0版本又把Keras的相关API都嵌入到tf中,使得其功能更加强大。但由于版本变动过大,因此1.0版本的代码在2.0版本好多都报错,造成版本升级迭代困难。
TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 。
TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API) 。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码。
在2017年,Tensorflow独占鳌头,处于深度学习框架的领先地位;但截至目前已经和Pytorch不争上下,甚至略输入Pytorch。
Tensorflow目前主要在工业级领域处于领先地位。
tensorflow学习教程:https://github.com/aymericdamien/TensorFlow-Examples
Pytorch:
Pytorch目前是由Facebook人工智能学院提供支持服务的。Pytorch目前主要在学术研究方向领域处于领先地位,许多学术论文都是用pytorch编写的,因此使用范围更广。
其优点在于:PyTorch可以使用强大的GPU加速的Tensor计算(比如:Numpy的使用)以及可以构建带有autograd的深度神经网络。
同时,PyTorch 的代码很简洁、易于使用、支持计算过程中的动态图而且内存使用很高效,版本之间差异也不大,没有升级方面的困难。
在学术研究领域,PyTorch占据主导地位。多数最新研究论文和模型实现基于PyTorch,这得益于其动态计算图机制和易用性,便于快速实验和调试。例如,HuggingFace等平台上的大多数预训练模型也优先支持PyTorch。相比之下,TensorFlow在研究中的使用率已显著下降,尽管其2.0版本改善了用户体验,但社区迁移趋势已使PyTorch成为研究首选。
-
- Tensorflow更倾向于工业应用领域,适合深度学习和人工智能领域的开发者进行使用,具有强大的移植性。
-
- Pytorch更倾向于科研领域,语法相对简便,利用动态图计算,开发周期通常会比Tensorflow短一些。
2. 1. PyTorch相关部署:
选择您的偏好设置并运行安装命令。稳定版代表当前经过充分测试且受支持的PyTorch最新版本,适合大多数用户使用。若需获取每日生成的最新但未经充分测试的预览版构建,请选择预览选项。请确保已满足以下前提条件(例如numpy),具体取决于您的包管理器。您也可以安装PyTorch的旧版本。请注意,LibTorch仅支持C++。

可以看到在大多数的AI深度学习的框架都是依赖NVIDIA的CUDA平台和cuDNN库来利用GPU进行并行计算来进行搭建部署的。
痛点:
英伟达靠CUDA绑死开发者18年,形成一座生态监狱。 想换国产华为晟腾AI芯片? 先交“越狱费”:重写80%的代码,抛弃成熟的CUDA库,告别全球最大的开发者论坛:“就像让习惯了Windows的人一夜改用Linux,连复制粘贴都要重新学”,所以,怎么样来打破这个破局呢?
CANN是什么?
本文将介绍昇腾 AI 异构计算架构 CANN(Compute Architecture for Neural Networks),这是一套为高性能神经网络计算需求专门设计和优化的架构。CANN 包括硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供强大的硬件基础和管理网络模型、计算流及数据流的软件栈,以支撑神经网络在异构处理器上的执行。
昇腾的CANN(Compute Architecture for Neural Networks)是华为专门为AI场景设计的异构计算架构,类似于英伟达的CUDA,但它针对的是华为自家的昇腾AI处理器(Ascend系列)。简单来说,CANN的作用是连接上层AI框架(如TensorFlow、PyTorch)和底层昇腾硬件,通过优化计算任务调度和资源管理,最大化昇腾芯片的性能。
CANN与CUDA的联系
- 目标一致:两者都是软硬件协同的计算平台,旨在通过编程接口(API)调用硬件加速能力,提升AI训练和推理效率。
- 功能相似:均提供底层算子开发、内存管理、并行计算支持等功能,帮助开发者直接操作硬件资源。
- 生态闭环:两者都试图构建独立的开发者生态,通过工具链(如编译器、调试器)降低开发门槛。
昇腾 AI 异构计算架构(Compute Architecture for Neural Networks,CANN)是专门为高性能神经网络计算需求所设计和优化的一套架构。在硬件层面,昇腾 AI 处理器所包含的达·芬奇架构在硬件设计上进行计算资源的定制化设计,在功能实现上进行深度适配,为神经网络计算性能的提升提供了强大的硬件基础。在软件层面,CANN 所包含的软件栈则提供了管理网络模型、计算流以及数据流的功能,支撑起神经网络在异构处理器上的执行流程。

CANN 作为昇腾 AI 处理器的异构计算架构,支持业界多种主流的 AI 框架,包括 MindSpore、TensorFlow、PyTorch、Jittor 等。
-
1.Ascend C 算子开发语言,开放全量低阶 API 接口使能开发者完成高性能自定义算子开发;开放高阶 API 接口,降低开发难度,开发者可快速实现复杂自定义算子开发。
-
2.GE 图引擎(Graph Engine),包括图优化、图编译、图执行等,便于开发者使用,优化整网性能。
-
3.HCCL 集合通信库(Huawei Collective Communication Library),可供开发者直接调用,改善网络拥塞,提升网络资源利用率和运维效率。
-
4.AOL 算子加速库(Ascend Operator Library),提供基础算子和大模型融合算子 API 接口对外开放,供开发者直接调用,使能大模型极致性能优化。
-
5.Runtime 运行时,将硬件资源(计算、通信、内存管理等)的 API 接口对外开放,满足开发者对模型开发、系统优化、第三方 AI 框架对接等不同场景诉求。
CANN 提供了在昇腾平台上开发神经网络应用的昇腾计算语言 AscendCL(Ascend Computing Language),提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等 API,实现利用昇腾硬件计算资源、在昇腾 CANN 平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。简单来说,就是统一的 API 框架,实现对所有资源的调用。

昇腾训练营报名链接:
https://www.hiascend.com/developer/activities/cann20252#cann-camp-2502-intro
训练营简介:2025年昇腾CANN训练营第二季,基于CANN开源开放全场景,推出0基础入门系列、码力全开特辑、开发者案例等专题课程,助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证,即可领取精美证书,完成社区任务更有机会赢取华为手机,平板、开发板等大奖
更多推荐




所有评论(0)