昇声入耳·《昇腾AI异构计算架-CANN》音频概要
收藏回复举报
昇声入耳·《昇腾AI异构计算架-CANN》音频概要
发表于2024-07-03 16:23:54
0 查看

异构计算和人工智能有什么关系?CANN又是什么?CANN又是发挥了怎样的作用呢?

1 为什么需要异构计算架构

先来聊聊人工智能和异构计算架构的关系

说到人工智能,其实大家并不陌生,能够理解语音的智能助手、能够识别人脸的摄像头,能够检测路况的自动驾驶汽车无论是哪种,要想让机器拥有人类的技能,就需要搭建一个像人类大脑一样的“神经网络”,我们称作AI算法或模型,并用大量的数据训练,直至它变得足够聪明,并能够基于经验对新的任务做出反馈。这个过程依赖高度复杂的算法和巨大的计算量,以GPT-3为例,其参数量已经达到1750亿、样本大小有45TB之多,单次训练时间要以月为单位,如何提高计算效率是人工智能要解决的核心问题。

在人工智能计算中,涉及较多的矩阵或向量的乘法和加法,CPU这类通用处理器的硬件特性决定了它处理此类计算需求的效率非常低,因此在现实应用中,(有重新录制)主要利用擅长大规模并行计算任务的AI加速器完成,譬如昇腾NPU等专用处理器。由于计算的多样性,在这些加速器内部存在非常多不同架构的计算单元,如scalar/vector/cube,就好比我们规划厨房空间时,针对不同的厨具设计不同的收纳空间,这样不同形状和大小的盘子、杯子就能放到各自专用的位置,从而最大限度地利用空间。

如此一来,就解释清楚了,为什么人工智能计算是异构的。异构计算是指在同一计算系统集成不同类型或架构的处理单元,以便更有效的执行不同类型的任务。为充分利用这些异构算力,就需要构建一套统一的编译优化和编程接口体系,实现底层多样算力与上层框架/算法的解耦、互通,从而发挥不同处理器的优势,通过协同工作,来提高整个系统的性能、能效和灵活性。

以昇腾CANN(Compute Architecture for Neural Networks)为代表的异构计算架构对上适配PyTorch、TensorFlow以及昇思MindSpore等业界主流AI框架,对下适配多样化异构算力;一方面让基于异构计算架构的编程更轻松,另一方面让异构算力充分利用起来。

CANN从2018年的第一个版本发展到如今的7.0版本,经过多个版本的迭代,无论从编程易用性角度,还是计算加速角度来说,都积累了非常多的技术优势。

2 异构计算架构CANN的技术优势

2.1 极致性能

CANN的技术优势就是可以让AI任务在异构硬件上进行计算加速,这到底是怎么样的一个过程呢?

说到计算加速,我们知道AI任务的逻辑核心是AI算法,就是开始提到的那个类似人类大脑一样的“神经网络”。这个神经网络是一张巨大的,有成千上万个节点连接而成的庞大计算图,直接递交给异构硬件的话,运行效率可想而知,就需要通过CANN对整个计算计算图进行编译优化。为提高计算效率,CANN会把计算图做加工和精简,消融掉若干节点,这样大图变成了小图,计算效率自然有提升。

再者,由于异构硬件上擅长处理的计算任务不一样,CANN会将图做进一步拆分,并下发到CPU、NPU、甚至是NPU内部更小的异构单元上执行,这样各异构资源就能“物尽其用”。

另外,拆分后的图和图之间必然会有前后联系,顺序执行的话会因为任务之间互相等待带来性能损耗,CANN通过类似工厂流水线的方式,让计算任务自动并行起来,这样整个工厂的机器就能满负荷运转起来。

    针对这些计算图中的节点(算子),CANN也适配昇腾硬件做了深度优化,并预置到内部的加速库中,组成了能够让AI任务飞速执行的弹药库。这其中,不仅有包含常用深度学习算法计算类型的NN算子库、能够提供高性能媒体数据处理能力的DVPP(Digital Vision Pre-Processing)算子库、分布式训练中提供卡间高效数据传输的HCCL(Huawei Collective Communication Library)算子库,更有覆盖Transformer网络大模型结构泛化的高性能融合算子库。而这些,正是构成了CANN的核心技术竞争力。

2.2 极简易用

CANN面向开发者提供了编程易用的接口。

先从算法创新说起吧。目前CANN广泛支持业界主流深度学习框架,包括昇思MindSpore、PyTorch、TensorFlow 、PaddlePaddle、计图Jittor等等,支持从GPU生态低成本迁移至昇腾生态,开发者可以选择继续使用原有框架,仅切换底层硬件就行;可以选择迁移到华为开源的昇思MindSpore框架获得昇腾全栈能力;也完全可以基于CANN进行原生开发,目前Pytorch已支持昇腾设备接入,意味着开发者可直接在昇腾设备上使用PyTorch原生算法开发。

在前面的介绍中,我们知道深度学习算法由一个个计算节点组成,我们称之为算子,例如卷积层是一个算子、全连接层中的权值求和过程也是一个算子,它们是完成高性能AI计算的关键。在算法迁移或开发过程中,如果发现某些算子性能达不到预期的要求,或者想针对新的业务场景开发新功能,就需要进行算子开发。

在这个维度上,CANN提供了面向算子开发场景的昇腾Ascend C编程语言。它原生支持C/C++编程规范,通过多层接口抽象、并行编程范式、孪生调试等技术,极大提高了算子的开发效率,帮助AI开发者低成本完成算子开发和模型调优部署。

特别在大模型场景下,利用Ascend C,能将Transformer网络中融合算子的开发周期从2人月缩短到2人周,为大模型开发和创新创造了非常便利的条件。

除了算法迁移、算子开发之外,CANN在AI应用开发层面,提供了AscendCL编程接口,说白了,它是一套用于开发AI推理应用的C语言API库,兼具运行时资源管理、模型加载与执行、图像预处理等能力,能够让开发者轻松解锁图片分类、目标识别等各类AI应用。

那开发者只需要操作AscendCL编程接口就能基于昇腾硬件开发AI应用么?不需要理解硬件能力,也不需要考虑底层昇腾硬件的差异么?

是的,开发者只需要操作AscendCL编程接口,它直接屏蔽了昇腾硬件差异,开发者掌握一套API就可以全面应用于昇腾全系列硬件。并且,在未来CANN版本升级的情况下,依然可以做到后向全面兼容,且运行效率不打折扣!

2.3 架构开放

早在2021年,CANN就开放了应用开发、算子开发、图开发接口,并在昇腾社区例行发布社区版本,包含最新版本特性供开发者提前使用。

2023年,开放了Runtime运行时,让开发者可以直接调用NPU内部资源,自主构筑极致性能大算子和加速库。

2024年,随着大模型的飞速演进,AI越来越难被普通的开发者和组织驾驭,为更进一步提升AI计算效率,支撑开发者的算法创新诉求,CANN进一步开放,为开发者提供了更加丰富、灵活的原生开发工具,支持开发者原生创新,构筑差异化优势。

借助CANN开放资源,开发者可以更深入的调用运行时的能力,释放硬件性能;通过Ascend C接口类库及算子加速库,获得原生开发能力;通过集合通信库,自定义通信策略,获得更高的通信性能;通过GE图引擎接口,自定义图结构,获得最优图性能。

3 开发者计划

针对不同层次开发者,CANN提供了全面的赋能体系。从而支持了个人、高校&科研院所、企业伙伴等百万开发者一起学AI、用AI

面向入门阶段,我们提供学习文档、认证课程、系列教材供开发者自主学习,开展线上线下CANN训练营活动牵引开发者学习,还联合高校老师开展教学实践赋能学生群体。

面向实践阶段,我们有丰富的应用案例供开发者体验、各种类型的众智和竞赛任务给予开发者开展实践和应用。

面向研究创新阶段,我们成立了昇腾CANN学术基金鼓励创新成果孵化,同时通过技术行等专项支持,大力扶持企业伙伴,探讨与解决关键技术问题,使能伙伴商业成功。

在哪里可以获取学习资源,还有各种活动、比赛信息呢?

在“昇腾社区”网站上,可以查阅我们的官方文档、观看在线课程、体验在线实验、申请技术微认证,同时CANN训练营活动、开发者大赛等信息也会发布在网站上,大家都能及时关注到。

在昇腾CANN微信公众号、CSDN、知乎、以及昇腾AI开发者B站UP号上,我们会不定时发布一些科普性的技术博客、热点新闻事件和活动赛事,让开发者了解最新的AI技术以及技术动向。

实践上的机会有哪些呢?

我们和香橙派联合发布了性价比超高的Orange Pi AIPro开发板,目的就是让普通开发者也能够体验昇腾,它提供了8/20 TOPS AI算力,丰富的接口具有强大的可扩展性,能覆盖生态开发者板的主流应用场景,满足用户各种创新场景的实践需求。

今年CANN将大力开展基于Orange Pi AIPro开发板的赋能活动,打造爆点应用供开发者体验创新,最新消息我们将发布在“昇腾社区官网”和“昇腾CANN微信公众号”上,欢迎大家多多关注。

4 生态进展

在生态发展方面,CANN始终坚持开放、合作、共赢的原则,与百万开发者共建繁荣AI生态。过去的几年中,我们与超过300家高校研究团队开展合作,保持技术先进性,累计组织过数百场线上线下活动,与300万的昇腾开发者共成长。

另外,我们还积极与三方开源社区开展合作,目前已支持昇思MindSpore、飞桨(PaddlePaddle、Paddle-Lite)、PyTorch、TensorFlow、计图(Jittor)等业界主流深度学习框架、OpenCV DNN、MMDeploy等推理引擎,从而实现不同框架/引擎下的代码在异构硬件上的高效运行。

CANN的应用案例有哪些?

我们联合科大讯飞在半年时间内通过孵化大模型融合算子、多维度分布式并行、以及基于CANN联合深度优化,实现了讯飞星火大模型训练和推理效果翻番。

依托CANN的全栈协同优化,鹏城云脑构建了性能领先的AI训练集群,并已经面向全社会为大模型训练提供算力底座。

此外,CANN助力紫东太初构建开放服务平台2.0,使能行业大模型高效开发、加速行业应用落地。

未来呢,CANN会一直坚定聚焦人工智能基础平台的研发投入,持续深耕人工智能根技术,并且怀着更加开放态度,撬动更多开发者共同推进AI生态建设,拥抱更多伙伴使能科研和企业创新,促进人工智能产业蓬勃发展!

如果收音机前的伙伴们想了解更多精彩内容,与伙伴们碰撞思想火花,欢迎登录昇腾社区《昇腾学堂》查看更多哦~

好啦,本期的节目就到这里了,下期我们不见不散

我要发帖子