新智元报道  

编辑:白峰、梦佳

【新智元导读】如今,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. FFmpeg中libswscale库简介及测试代码
  2. oracle11 区分大小写,修改Oracle11g用户密码不区分大小写
  3. OO设计原则总结[转载]
  4. 数据库连接池为什么要用threadlocal呢?(不用会怎样?)
  5. 高效终端设备视觉系统开发与优化
  6. web 资源管理器相关产品
  7. pytorch AUTOGRAD
  8. 关于TP中的M()方法与D()方法
  9. Java中判断当前数据是否全为数字
  10. uniapp微信小程序获取位置(高德SDK)
  11. ubuntu下安装pythoncharm_Ubuntu下安装、激活并配置Pycharm
  12. 自学python免费教材-Python 有哪些入门学习方法和值得推荐的经典教材?
  13. 6-5.添加HLSL顶点着色
  14. 笔记本主板如何测试软件,笔记本硬件检测,小编教你笔记本怎么检测硬件
  15. OpenGL glut导入OBJ模型文件
  16. CentOs 7.3 —— 使用rescue找回被删除的系统文件
  17. 目前为止最全的微信小程序项目实例 --- demo锦集
  18. 互联网运营平台指标体系_分享 :滴滴数据仓库指标体系建设实践
  19. 我想给他拿给他拿台计算机的英文,NO-BOOK 傻瓜机英语口语中级版The machine can do the work of ten men.这机器...
  20. 【TARS】初识TARS

热门文章

  1. 【Kafka】Kafka IllegalArgumentException: Could not find a ‘KafkaClient‘ entry in the JAAS configuratio
  2. 95-280-038-源码-资源管理-计算资源管理-TaskSlot-JobManager 中 Slot 的管理
  3. 【Flink】Could not instantiate the executor. Make sure a planner module is on the classpath
  4. ((CTRL-CHAR,code 8)) : only regular white space is allowed between tokens
  5. Spring Boot如何以优雅的姿势校验参数
  6. Scala与Java混编译:java日志不打印的问题
  7. drool 7.x 属性 : lock-on-active
  8. mac下flink集群安装
  9. 学习云计算有什么用?企业怎么才能“上云”?
  10. qt linux 国际化,多语言,配置CLion管理Qt项目国际化支持