新智元报道  

编辑:白峰、梦佳

【新智元导读】如今,AI已经进入了全面落地的阶段,但未来想要让AI真正像水和电一样无处不在,还面临着巨大的鸿沟。为了解决算力成本高、模型开发效率低的问题,华为专门设计了异构计算架构CANN 3.0。

最近,火遍全球的GPT3,有1750亿个参数,解锁各项技能,和人类对话,无所不能。GPT-3正是AI崛起,突飞猛进的最佳例证。但在众人惊叹之时,却不知道,训练他Open AI可是花费了460万美元。如果不是以API的方式开放给普通用户使用,这个NLP神器可不是大家都能玩的起的。AI训练的高成本、算力的昂贵,导致了这种意义上的开发只是科技大佬们展示技术实力的专利,在大众心中,AI仿佛只是看上去很美。如今,AI已经进入了全面落地的阶段,未来想要让AI真正像水和电一样无处不在,还面临着重大的鸿沟。除了高成本,从模型开发到商用也还有很大的距离,各场景下的AI算法已经比较成熟,但是模型迁移适配要耗费的人力物力太多。华为昇腾计算业务总裁许映童表示,目前的AI应用普遍存在一个问题,训练侧和推理侧的设备相互独立,业务流程分割,很多环节需要人为干预,开发成本的提升,几乎抵消掉了AI带来的便利。而且场景多种多样,设备各异,导致AI融入实际应用的门槛很高,比如说用终端开发的AI应用在云端就有可能不兼容。那有没有通用的方法可以实现全场景的高效开发?

华为的野望:异构计算架构CANN 3.0,全场景AI走起

为了解决算力成本高、模型开发效率低的问题,昇腾专门设计了异构计算架构CANN 3.0。早在2018年10月10日,华为在全联接大会上发布AI战略时,就发布了异构计算架构CANN 1.0,CANN 3.0已经是第三个版本了,目前已经统一了编程架构,做到了端边云全场景协同。CANN 1.0注重边缘侧的推理,让终端应用的推理速度更快。CANN 2.0打通了数据中心和训练端,提高了训练的效率。CANN 3.0全场景都具备极强的伸缩性和可适应性,让开发者不用再纠结终端是手机、摄像头还是机器人,也不用关心硬件使用了哪种操作系统,Linux、Android、鸿蒙OS都没有问题。目前CANN 3.0已经覆盖10+操作系统和14+智能终端设备,一次编写代码,就能实现端边云全场景复用,极大提升了开发效率。那CANN 3.0相比之前的两个版本,有哪些优势呢?软硬件解耦,一套代码通全关高性能的AI开发一定是软硬协同设计的,像谷歌的TensorFlow在自家的TPU上性能是要好于英伟达GPU的,这种软硬件高度耦合的模式虽然效率高,也有缺点,某个TPU上表现优异的模型换个硬件可能就「哑火」了。而CANN 3.0的代码是普适的,对端、边、云全场景下的训练、推理硬件没有特定依赖,它为用户提供了丰富的算子库和难易结合的编程方法,开发一套代码,就能在各种终端硬件上复用,性能还可以发挥到最好。指令级算子开发满足高手的性能控制欲说到算子开发,CANN 3.0为了满足不同水平的AI开发者需求,支持普通和专业两种算子开发模式。对普通开发者,建议使用TBE-DSL。DSL可自动实现数据切分和调度,覆盖了70%的算子,开发者只需关注计算如何实现,调用已有的算子即可,将算子开发时间降低70%。而对性能有极致追求的高级开发者,可以通过TBE-TIK实现指令级编程和调优过程,可覆盖全部算子,如果开发者对底层原理比较熟悉,这种方式可以进一步挖掘硬件的计算潜力。不论升级到哪个版本,CANN 3.0都可以继续使用花很大精力对算子进行了优化,突然有一天CANN升级到4.0了,代码是不是就失效了?CANN 3.0充分考虑了软件的生命周期。在顶层提供了昇腾统一编程接口AscendCL,将API进行了归一化,即使CANN升级到4.0、5.0版本,基于CANN 3.0开发的代码依旧可以使用。许映童表示,CANN升级后,老版本代码最多需要重新编译下,而无需修改,简直是开发人员的福音。后向兼容,对CANN的研发人员是极大的挑战。CANN 3.0做了后向兼容,让用户享受到最新的性能提升的同时,还可节省开发成本,保证了软件的持久生命力。「把复杂留给自己,把简单留给客户」也是昇腾一直坚持的产品理念。

如何释放算力狂魔?指挥官CANN 3.0还可以「上下兼容」

除了高效开发,CANN还打通了AI算法和计算优化的「任督二脉」。TensorFlow的开放性以及完善的社区建设,以及对多种不同硬件平台的支持,让谷歌在AI模型开发框架上占据了相当大的优势。除了TensorFlow,PyTorch、Caffe、Mxnet等开发框架也有很多厂商在用,尤其PyTorch,大有超越TensorFlow的趋势,学术界很多先进的模型都是使用PyTorch开发。这样就有个问题,不同框架开发的模型,在不同的系统、不同的设备上不能通用,需要二次开发,ONNX类似的工具虽然可以支持不同框架的模型,但这些非原生工具会遇到各种各样的bug,还无法溯源。在实验室中很多SOTA模型是用PyTorch写的,但是到部署端的架构只支持TensorFlow,就需要重写模型,效率很低。但每个框架都有自己的优点,TF性能稳定、PyTorch的动态图很灵活、Mxnet有很多成体系的视觉算法库,所以AI算法层面最好能兼容它们。AI计算平台的核心能力构建包括两方面:上层的AI算法和下层的高性能计算。CANN 3.0上可以接各种深度学习编程框架的AI算法,下可以加速昇腾全系列AI芯片的训练和推理速度,是昇腾的真核心。那么CANN 3.0是如何实现芯片加速的?过去几年,英伟达能在AI计算领域大展拳脚,很大程度上得益于CUDA和cuDNN等加速插件库,而CANN就是昇腾系列的「CUDA」。CANN 3.0通过AscendCL提供 Device 管理、Context 管理、Stream 管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等 C++ API 库供用户开发深度神经网络应用,用户可以用任何第三方框架调用这些API库,而无需关心计算资源优化的问题。那CANN 3.0如何实现的计算资源智能分配?神经网络可看作一张张的图,过去大部分图在HostCPU执行,如今昇腾的图编译器,实现了整图下沉,图和算子均可在Device侧执行,减少了芯片与Host CPU的交互时间,从而更充分地发挥昇腾芯片的算力。像TF搭建的神经网络都是一张张计算图,过去这些图都在HostCPU中执行,资源允许的时候整个图都在HostCPU中执行效率是很高的,但是资源有限的情况就需要Device侧协同处理,也就是昇腾加速卡中,通过把整张图下沉到Device中,可以高效协同CPU完成计算。

根据图的特点和计算资源的分配情况,CANN可以自动进行图的拆分和融合,尽量减少和HostCPU的交互,交互少了,计算资源就能持续保持高强度运转。数据Pipeline智能优化极大提升了数据资源处理效率,通过人工智能实现数据的自动切分与智能分配流水,以最大化个体计算单元的使用率,从而提高计算效率。除了图自动编译和图的拆分融合优化,CANN 3.0的1000+算子库让你的神经网络「瞬时」加速。强如英伟达,cuDNN也只有一百多个算子,CANN 3.0不仅包括了常用的Caffe 及 TF 算子,还独立提供各种加速库,这些加速库可通过 ACL统一编程接口实现,如矩阵乘接口等。CANN 3.0现在的架构功能十分完善,对外提供适配不同硬件、不同 OS 的驱动,支持GPU+CPU异构通信,对内可实现Stream、内存等底层管理,丰富的加速库支持算子/标量/向量等通用计算,能高效完成图像和视频数据的预处理,执行引擎为深度神经网络计算提供了执行上的保障。给AI硬件插上翅膀,CANN 3.0打开算力「潘多拉魔盒」有了CANN 3.0保驾护航,在主流推理场景,昇腾AI推理卡Atlas 300I性能得到大幅提升。要验证推理性能,多路高清视频分析的场景再合适不过了,高清视频本身流量大,加上多路融合更考验计算平台的并发处理能力,实测表明单张Atlas 300I推理卡可同时处理80路1080p、25FPS的高清视频,是当前市面上同类推理卡路数的2倍。对交通、安防等场景来说,需要同时处理的视频路数就更多了,少则几百,多则上万,如果单卡能处理更多的任务,规模化应用时成本优势就会扩大,而且硬件数量少了更容易部署。所以很多人工智能厂商,正基于昇腾AI推理卡打造极致性能的高路数视频分析解决方案。在训练端华为也有高密度「算力狂魔」,实测表明,Atlas 800在多个模型的训练中都优于业界新品训练服务器,平均性能领先业界2.5倍。可以看到,昇腾的训练卡和推理卡「单兵」作战能力极强,如果把它们集结起来能成为一支算力特种部队吗?「指挥官」CANN说:可以。受机器间通信能力的影响,多个机器同时处理一个任务时,如果计算资源分配不好,总体性能会大打折扣。CANN要做的就是分配给「单兵」任务,让它们能高效协同作战,事实也证明经过L2网络与CANN的联合「指挥」优化,昇腾AI集群实现了1+1>2的性能提升,远超友军。CANN 3.0不仅降低了各个领域使用昇腾芯片开发应用的难度,还提供了很多优秀的中间件和基础库使能各个厂商,但面对谷歌、英伟达、英特尔等国际巨头的强力竞争,想要生存下去,还是要构建一个完整的生态,为学术界和产业界贡献更多算力,为合作伙伴创造更多价值。

CANN「不是一个人在战斗」,还有开发者的AK47

CANN并不是单打独斗,光有一个计算架构也建立不了AI计算的生态。今年3月份,华为开源了MindSpore,这是一款支持端边云全场景的AI框架,可广泛应用于计算机视觉、自然语言处理等AI领域。使用MindSpore可以显著减少训练时间和成本,用最少的资源实现最高的效能,MindSpore原生支持昇腾AI处理器,让AI模型开发更加简洁高效。在刚刚过去的HAI大会上,华为昇腾正式发布了昇腾应用使能MindX,它包括了Atlas深度学习平台MindX DL、Atlas智能边缘平台MindX Edge、优选模型库ModelZoo和各种行业SDK。MindX DL通过数据中心设备与计算资源统一管理与调度,可以在计算集群上快速搭建起商用深度学习系统,许映童说,有需求的用户以此为基础,进行简单二次开发就可以满足业务需求,快速上线。MindX Edge是面向推理端的平台,可以实现轻量化部署,支持摄像头、无人机等多种形态的推理硬件。ModelZoo和行业SDK包含大量的主流的模型,能帮助开发人员迅速构建多场景下的AI应用。这么多的平台和工具,从模型到算子到行业SDK,如果每个环节都要自己搭建开发环境,CANN、MindSpore、MindX的开发优势将荡然无存,所以华为推出了一个全流程工具链MindStudio 2.0,有了它,所有的开发工作都能在一个环境下完成并且支持一键部署。正如华为昇腾计算业务CTO周斌所说,「MindStudio才是开发者的AK47」!你的盒子枪可以扔了。根据中国《新一代人工智能发展规划》,到2030年,将带动人工智能相关产业规模超过10万亿元。如此大的产业规模,所需的算力会远远超过1750亿参数的GPT-3,而昇腾AI计算平台会填补这个「算力真空」,赋能千行百业,为AI提供无处不在的算力,昇腾AI未来可期!

cuda linux 算力_华为AI再进化,CANN 3.0释放算力狂魔相关推荐

  1. 华为AI再进化,CANN 3.0释放「算力狂魔」

    2020-08-14 14:41:45 [新智元导读]如今,AI已经进入了全面落地的阶段,但未来想要让AI真正像水和电一样无处不在,还面临着巨大的鸿沟.为了解决算力成本高.模型开发效率低的问题,华为专 ...

  2. 华为手机耳机sws音效是什么_华为M3平板的SWS 3.0技术对于音效有哪些改善?

    简单来说,在华为平板M3的系统的[设置]>[声音]里面有个SWS模式开关,打开之后就能感受到"极致影音平板"的声音魅力,声音表现马上提高一个层次.除了系统内的设置开关,你也可 ...

  3. 华为硬件工程师手册_华为认证物联网工程师HCIAIoT V2.0正式发布!

    华为认证物联网工程师HCIA-IoT V2.0自2019年7月31日起,正式在中国区发布.1发布概述基于"平台+AI+生态"战略,围绕"云-管-端"协同的新IC ...

  4. 华为硬件工程师手册_华为认证物联网工程师 HCIA-IoT V2.0(中文版) 发布通知

    华为认证物联网工程师HCIA-IoT V2.0(中文版) 自2019年7月31日起,正式在中国区发布. 1. 发布概述 基于"平台+AI+生态"战略,围绕"云-管-端&q ...

  5. android 华为手机灭屏搜索不到蓝牙_华为Mate 30更新EMUI10.1.0.132版本,新增10项实用功能...

    前几天,华为新版本内测开始,无线传声功能备受欢迎.今天,小向的华为mate 30也终于迎来了更新,除了无线传声,还有10多项新功能值得期待,不知道你有没有更新呢? 宣传卖点:无线传声 无线传声,是华为 ...

  6. 华为硬件工程师手册_华为电磁兼容性结构设计规范V2.0

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 1105621549 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢 ...

  7. 华为鸿蒙系统下载猫薄荷,华为鸿蒙系统官网下载_华为鸿蒙系统官网2.0系统安装包免费分享 v1.0-安族软件网...

    华为鸿蒙系统官网,为大家带来了一个全新的手机系统哦,这款由华为研发的鸿蒙系统运行流畅稳定性非常的好,完全能够取代现在的安卓系统,为了大家能够更好的体验,小编已经为大家带来了最新的安装包哦! 华为鸿蒙系 ...

  8. CANN 5.0黑科技解密 | 算力虚拟化,让AI算力“物尽其用”

    摘要:算力虚拟化技术对消费者而言,可有效降低算力的使用成本,对于设备商或运营商而言,则可极大提升算力资源的利用率,降低设备运营成本. 为什么要做算力虚拟化 近年来,人工智能领域呈井喷式发展,算力就是生 ...

  9. 华为鸿蒙汽车自动驾驶,华为鸿蒙车机OS现身,自动驾驶再进化

    原标题:华为鸿蒙车机OS现身,自动驾驶再进化 在2019年的上海车展上,华为首次公开宣布进入汽车领域.时隔一年多,在2020北京车展上我们将再次看到华为的身影.这一次,人们的疑问不再是"华为 ...

最新文章

  1. golang 字符串排序_Golang操作数据库Redis
  2. c 各种编译器(gcc clang)
  3. linux 模块常用命令
  4. python从数分到数编(part1)--基础
  5. 关于不同用户进入系统报错的请求
  6. Unity应用架构设计(10)——绕不开的协程和多线程(Part 1)
  7. 智能门禁(2)---安检人脸识别人证验证系统解决方案
  8. python 字符串中符号的意义
  9. 阿里全盘调整组织架构意味着什么?| 畅言
  10. JSK-217 阶乘【大数】
  11. java TreeSet去重与排序入门
  12. SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对照注解方式的优缺点)...
  13. LFW database
  14. Git bash和 Git GUI设置中文
  15. Excel数据分析—制作客户画像
  16. Oracle官网 JDK下载 注册登录公共账号和密码
  17. (转)用MongoDB 实现优酷API 缓存
  18. 洛谷 P1162填图颜色
  19. python并发之concurrent快速入门
  20. 【数据库】数据库的安全性

热门文章

  1. 【Logstash】logstash 报错 logstash cannot write event to DLQ reached maxQueueSize of
  2. 20-10-032-安装-KyLin-2.6.1-单机版安装(MAC官网下载)
  3. 95-130-502-源码-source-ElasticSearch相关-ElasticSearch connector
  4. Mac使用终端压缩加密文件
  5. 大数据面试-04-大数据工程师面试题
  6. 《spring-boot学习》-02-hello world
  7. linux怎么看java环境变量_linux下配置jdk环境变量以及查看java版本
  8. POI大量数据读取内存溢出分析及解决方案
  9. 七种方式,教你在SpringBoot初始化时搞点事情!
  10. Springboot 整合 Netty 实战(附源码)