日前,华为昇腾计算产业发展峰会在北京召开,会上宣布昇腾硬件使能CANN全面开源开放,Mind系列应用使能套件及工具链也全面开源,以支持用户自主开发,加速AI创新与应用。
在昇腾计算产业发展峰会上,华为轮值董事长徐直军宣布,华为昇腾硬件使能CANN全面开源开放,Mind系列应用使能套件及工具链全面开源,支持用户自主的深度挖潜和自定义开发,加速广大开发者的创新步伐,让昇腾更好用、更易用。
华为的CANN会成为中国版本的CUDA吗?我们来分析一下。
一、什么是CANN
CANN的全称是“神经网络异构计算架构”(Compute Architecture for Neural Networks),它的角色,是把上层AI训练框架(如PyTorch、TensorFlow、MindSpore等)和底层昇腾芯片连接起来的桥梁,让开发者不用关心芯片细节就能调用底层算力。与CANN作用类似的,还有英伟达的CUDA和AMD的ROCm,以及中国摩尔线程的MUSA、壁仞科技的BIRENSUPA、寒武纪的Neuware和海光信息的DTK等等。但最知名和影响力最大的还是英伟达的CUDA,它与英伟达GPU和NVlink构成英伟达的核心护城河。
不可否认,与发展了18年的CUDA生态相比,刚起步六七年的CANN,易用性和生态丰富度仍存在差距,并且任重道远。去年9月,为了让客户适应新生态,华为效仿英伟达最初推广CUDA的策略,向百度、科大讯飞和腾讯派遣了工程团队,帮助他们在CANN环境中重现和优化现有的基于CUDA的训练代码。
简单说,CANN就是一个是适用于华为昇腾芯片的软件开发接口,便于编程者开发。
二、CUDA是怎么发展起来的?
首先,我们要搞清CUDA是怎么来的?
CUDA不是一朝一夕之功啊。
总所周知,nVIDIA一开始是一个臭打游戏的。
它起家是给游戏机做图形卡,后来报上微软的大腿,全力支持DX,成为PC机显卡的王者。
因为PC机的3D显卡,需要CPU配置计算,为了提速,老黄在geforce256上增加了硬件T&L功能。
这样显卡就有了做数学计算的可能。
2001年,斯坦福大学Bill Dally教授团队在处理器微结构旗舰期刊《IEEE Micro》上发表了一篇题为“Imagine: Media Processing with Streams”的论文正式介绍Imagine项目,一个可加速多媒体应用的流处理器(Stream Processor)结构。
这项工作很快引起了英伟达的关注,并向Dally教授伸出橄榄枝。
2003年,Dally教授担任英伟达的顾问,参与公司新一代GeForce 8800系列GPU的微架构设计,指导如何在GPU中加入流处理器(Stream Processor),让GPU具备浮点运算能力。
2006年11月,第一款GeForce 8800 GTX GPU发布,包含128个流处理器,单精度浮点运算性能达到345.6GFLOPS,访存带宽86.4GB/s,远高于同期CPU性能。
与此同时,斯坦福大学一位年轻的博士生Ian Buck在导师Pat Hanrahan教授(2019年图灵奖得主)的指导下开展如何方便且高效发挥GPU能力的研究。2004年,Ian Buck发表了一篇题为“Brook for GPUs: Stream Computing on Graphics Hardware”的论文,为GPU设计了一套支持流编程(Stream Programming)语言的编译器和运行时系统Brook,从而能让开发者像在通用CPU上那样进行编程。
这项工作旋即得到英伟达的青睐,于是2004年Buck博士毕业后便立刻加入英伟达,带领两位工程师创立了CUDA项目。
2007年,CUDA 1.0正式发布,全面适配GeForce 8800系列GPU。
随后,伊利诺伊州立大学香槟分校(UIUC)的胡文美教授团队在GeForce 8800 GPU上用CUDA实现一些程序,性能比通用CPU高10倍到400倍不等,充分展示了GPU的高性能与可编程性。
你看,CUDA是这么来的。
老黄自己的显卡能做一些计算,然后有人提出了流处理器的想法,老黄立即挖人来干,5年时间,弄出来流处理器硬件。
2004年,老黄的流处理器还没出来,有人提出来GPU的流编程,老黄又把人挖过来,等到第一款流处理器的显卡出来以后,CUDA的1.0也就有了。
2007年,国防科大杨学军院士带领团队在国际计算机体系结构旗舰会议ISCA上发表题为“A 64-bit stream processor architecture for scientific applications”的学术论文,揭示了流处理器架构可大幅加速科学计算。这项工作不仅为具备大量流处理器的GPU开辟了新应用场景,也为超级计算机架构设计开辟一条新技术路径,即采用“CPU+GPU”异构结构提升性能。
2009年11月,采用Intel CPU+ATI GPU异构结构的“天河一号”名列Top500排行榜第五。有意思的是中国用的是AMD的CPU。
其实,这种混合架构,最早还是PS3游戏机的Cell处理器,只不过GPU把运算单元分离了。
从此以后,老黄的卡成为科学计算的标配,AMD的卡计算能力不差,但是没有CUDA生态,Open AL它没有那么好用。
但是,这是市场不大,相比游戏市场九牛一毛
而老黄没有止步,它搞了nvlink来解决卡间通信问题,以前这个东西叫SLI,是从voodoo哪里买的多显卡渲染技术后,一步步发展起来的。
老黄自己搞过芯片组,搞过网卡,搞过声卡,网卡能战当时是3COM(还不是华三),声卡计算能力战当时的创新(新加坡公司)
一直到,比特币兴起,挖矿红利,老黄和AMD都吃了一大波。
再就是AI
本来AI和老黄并不是绝对关系,当年战胜卡斯帕罗夫的是IBM的超级计算机
但是,老黄十多年如一日,深耕高性能计算,到了AI需要算力的时候,大家很自然的买老黄的卡,用CUDA算。
这就轮到我们熟悉的李飞飞同学出场了,她搞了一个ImageNet的图像识别,应用人工智能,在2009年正式发布后并未得到很大的反响。
为了推广ImageNet,李飞飞教授团队决定启动一项基于ImageNet的物体识别竞赛。2010年第一届竞赛冠军识别错误率为28%,2011年第二届竞赛冠军错误率降到约25%。这个时候还是基于CPU的。
当时谷歌还搞过无人驾驶大赛,也是用CPU的服务器。
可以说AI一直在发展,只是CPU弱鸡,没有太大进展,然后这个时候老黄下场了。
2012年的第三届竞赛,Hinton教授与其两位学生Ilya Sutskever 和 Alex Krizhevsky带着使用英伟达GPU+CUDA训练出来的深度神经网络AlexNet参加竞争,将错误率大幅降低了近11个百分点,高出第二名41%。
此后几届ImageNet竞赛冠军都采用深度学习技术,并在短短的四年内就将识别错误率降低到3%(2016年冠军成绩),超越了人类。
然后就是2016年,这套深度学习用来下围棋,战胜李世石,给AI做了全球大广告。而用的计算平台也是CUDA和老黄的卡。
从此,老黄的计算卡从小众默默无闻到大红大紫。CUDA也在积累10年以后,成为AI的业界标准和护城河。
大模型发展是ChatGPT搞起来的,国内流行起来是因为deepseek蒸馏了ChatGPT,大幅度减低了本地部署的门槛让这个东西平民化,通用化。
随便一个人都能玩各种开源的大模型,甚至可以用它写高水平的文章。
可以说,CUDA是从20多年一步步从硬件到软件一步步发展起来的,积累深厚。
三、CANN能追赶CUDA吗?
昇腾910是华为2019年才开始搞的东西,是和谷歌类似的加速器思维。
华为入场是先与寒武纪合作,在麒麟970里面集成NPU算力,然后自己搞一个大的NPU,这个大的NPU就是昇腾910
期间,华为遇到一系列困难,但是昇腾910一步步发展到了昇腾910C,算力有所提升,而且增加了互联方案的384集群。
然而,搞到2025年,大家确实发现NPU不好用,即使的华为自己的盘古大模型,用自己的昇腾系列也是困难重重,内部除了很多问题,有小团队用阿里千问的模型,用英伟达的GPU来跑,获取内部资源。
所以,华为准备在昇腾910D上,学习英伟达搞也GPGPU。
现在CANN,应该相当于英伟达2006年以前的阶段。
目前,昇腾910D还没出来,CANN是给NPU搞呢还是给GPGPU搞呢?这个还有很大空间。
大约要等昇腾910D以后再说。
CANN这个东西关键在于能兼容CUDA的生态,转换也好,直接兼容也好,CUDA开发的成果能低成本转移就行。
麒麟910D加上CANN,能低成本把以前的AI开发成果拿过来用,华为的384集群,用16个机柜,实现了英伟达2个机柜的性能,而且做到了机柜之间的池化,这是英伟达做不到的,它只做到了单机柜的池化。而且未来能池化的不止16个机柜。
对于重大项目来说,可以用一个大楼的机柜,实现所需的算力,彻底解决掐脖子的问题,
未来,华为需要做很多。
首先,要实现昇腾910D从NPU向GPGPU的转化,让昇腾系列好用。
其次,要实现CANN低成本兼容CUDA的成果,让用户拿自己的CUDA下开发的资源能用。
然后,还需要把集群算力搞起来,用户可以通过很多个机柜实现英伟达的算力,无法多用点电力,中国不缺电。
这几个条件实现了,华为就将在AI市场真正占有一席之地。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.