昇腾CANN,开启千行百业的AI未来
作者|康翔
编辑|阿冒 设计|沐由
去年11月在世界互联网大会乌镇发布的《中国互联网发展报告2020》显示,中国人工智能专利申请数量高达11万项,首次超越美国,成为世界第一。
这当然是一个了不起的成就,实际上我们每个人早就已经感同身受了:智慧交通,让我们的出行更加畅通快捷;智能制造,让中国制造从做大走向做强……
更不用说网约车、电商购物、外卖等应用,纷纷将人工智能融入到场景当中,为人们带来前所未有的巨大便利。那么,是不是我们就可以认为更多的传统行业用户,也同样能够轻松写意地迈入AI时代呢?
很可惜的是,至少在当前我们还无法给出肯定的答案。
智能时代 加速进化
自从上世纪五十年代被提出以来,在很长的一段时间里,人工智能的发展一直比较缓慢。究其原因,在很大程度上是由于算力的不足和短缺。
熟悉计算产业的人,不会不知道关乎到处理器的摩尔定律。简而言之,就是每过十八个月,处理器就可以做到性能的翻倍。与其他很多行业相比,这简直是在开挂飙车。
然而,当数据从云上、从边缘,从一切可能的地方奔涌而来时,即便坐拥摩尔定律的加持,我们的数据处理能力仍然是相形见绌,让产业的智能化步履沉重。
我们知道,要真正做到AI的全面落地,势必要花费大量资源进行模型的训练。与此同时,模型的开发难度太大,以及后期向正式商用的迁移效率低下等问题,均是横亘在智能时代的巨大阻碍。
为了解决以上各种问题,打通客户迈向智能时代的“任意门”,华为专门设计了异构计算架构昇腾CANN。从2018年首次发布至今,CANN基本保持了一年一个版本的升级节奏,目前最新的版本是CANN 3.0。
与此前相比,CANN 3.0已经统一了编程架构,能够做到端边云全场景协同。在看到“端边云”时,我最早是有几分疑惑的:现在很多厂商都在谈“端边云管”, 为什么CANN 3.0偏偏少了一个“管”呢?
其实,问题的关键在于AI本身就体现在“端边云”,与“管”无涉。华为的技术专家告诉胖头陀,至少在当前,开发者并没有在“管”上做应用开发的需求。
在统一的APP编程语言之外,华为CANN 3.0还包含了统一网络构图接口、高性能计算引擎和算子库,以及包括驱动、虚拟化、媒体、集合通信等能力在内的基础服务。
也就是说,华为CANN 3.0为企业的智能进化,提供了一套贯穿业务生命周期的完整工具包,客户不再需要购买其他任何不必要的产品,就能完成从模型开发、算法训练、商用迁移等工作,同时减少人为干预、降低开发成本,企业可以从此尽享AI之美。
软件硬件 极致配合
如果你喜欢看综艺节目,一定会注意到,现在这类节目的机位多到“令人发指”,每位嘉宾的一颦一笑都会被拍下来,从而让录制的节目更具现场感和镜头感,吸引尽可能多的观众。
不过,假若没有后台强大的视频处理能力,再多的机位也只是摆设而已。
在视频应用场景中,CANN 3.0能够充分释放AI硬件的性能。以搭载了CANN 3.0的华为Atlas 300I为例,它可以同时处理 80 路1080p、25FPS的高清视频,是业界当前水准的2倍。
当然,我们只是用视频来举例,实际上在高效开发之外,极致性能是CANN 3.0的又一大价值。
目前,CANN 3.0高性能算子库已拥有1000+经过深度优化的硬件亲和算子,同时通过深度图优化、自动图拆分与融合、数据Pipeline智能优化等技术,CANN 3.0支撑极致性能的发挥,让用户投资在硬件上的每一分钱,都能发挥出最大的价值。
AI开发的效果,在很大程度上取决于软硬件的协调。就像是我们熟悉的木桶理论,如果软硬件不能做到匹配,系统的水准就只能勉强够到最短的那一根。
在目前的各种主流异构计算架构中,绝大多数都是在自家处理器上表现优秀,换到别家就有可能拉胯。其实,从商业回报上来看,这也无可厚非。
华为CANN 3.0则不然。由于代码是普适的,CANN 3.0可以毫无障碍地适配各种第三方厂商的机器学习系统,譬如谷歌的TensorFlow,最大程度地发挥软硬件的效率和性能。
与此同时,CANN 3.0对全场景下训练和推理的硬件也没有强行限定,因此用户只需开发一套代码,就能在各种不同的操作系统和智能终端上复用,而这无疑能够极大地降低用户的开发成本,便于他们将已有的成功应用,复制和迁移到更多的场景中。
据介绍,从1.0升级到3.0,CANN在带来更好性能的同时,也在不断适配更多的第三方计算框架。在CANN 3.0架构下,企业无需关心自己究竟在用哪个计算框架,因为华为已经从底层做到了软件与硬件的极致配合。
全面开放 灵活开发
我们的话题,最终还是要落在开发上,这也是千行百业面对智能时代时必须要跨越的一道坎儿,开发已经成为企业构建AI核心竞争力的关键因素。
面向不同水平的AI开发者,CANN 3.0没有采取一刀切的模式,而是提供了普通(TBE-DSL)和专业(TBE-TIK)两种算子开发模式,支持企业快速构建基于昇腾平台的AI应用和业务。
其中,TBE-DSL的入门难度比较低,它可以自动实现数据的切分和调度,开发者也无需了解昇腾AI处理器的相关知识,直接调用已有的算子,节省70%的算子开发时间。
TBE-TIK相对就难一些,不像TBE-DSL只是在高层抽象编程,而是要深入到指令层,灵活地调用计算资源,进一步挖掘硬件的计算潜力,实现更加高效和复杂的应用。
当然,经过不断的学习和实践,开发者完全可以从“普通”走向“专业”, TBE-DSL和TBE-TIK之间并非难以跨越的天堑。
需要指出的是,CANN 3.0在顶层提供了昇腾芯片面向应用的调用接口AscendCL,它的作用是让代码在未来的CANN 4.0,或是更高的版本下,依旧可以使用,而且能够做到运行效率不缩水。
该模式下,居中调停的AscendCL提供了Device、Context、Stream、内存、模型和算子等统一调用接口(API),开发者可以用任何的框架,譬如Tensorflow、Caffe、Mindspore等,方便快捷地调用这些API,而无需关心计算资源优化等问题。
此外,用户还可以使用AscendCL封装实现第三方lib库,以便提供昇腾AI处理器的运行管理、资源管理能力。
目前,华为在昇腾社区里为CANN 3.0开设了专区,这里也可以下载到社区版和商用版,前者是快速提供新特性的体验版,后者则是满足商用标准的稳定版本。
在专区里,开发者可以和华为的研究人员实现高效的互动,及时反馈在体验版里遇到的问题,然后华为会进行快速的版本迭代。同时,社区为也开发者提供了交流分享的平台。
作为引领科技革命和产业变革的重要驱动力,AI正在深刻改变我们的学习、工作和生活。毫不夸张地讲,拥有CANN 3.0,企业就拥有了开启智能未来的金钥匙。
你的未来,准备好了没有?
欲看更多文章