摘要:2021年12月,CANN5.0版本也将与大家正式见面,通过软硬件协同优化,该版本将会实现训练性能再翻倍,凭实力展现AI领域的「中国速度」!

本文分享自华为云社区《CANN 5.0硬核技术抢先看》,作者:kourei。

引言

2018年9月,CANN 1.0华为昇腾AI使能平台诞生;

2020年8月,CANN 3.0版本发布,作为专门面向AI场景的异构计算架构,搭起了上层深度学习框架和底层AI硬件平台的桥梁,开发效率和性能业界领先,可支撑用户全方位的人工智能计算诉求。

在最近一年中,CANN携手200+所高校/科研所,持续推进AI科研进步;

在CANN架构加持下,拥有千亿参数的盘古AI模型带来前所未有的商业价值;

昇腾社区开发者数量从10万增长到40万,生态阵营的蓬勃发展…

2021年12月,CANN5.0版本也将与大家正式见面,通过软硬件协同优化,该版本将会实现训练性能再翻倍,凭实力展现AI领域的「中国速度」!

先放几个彩蛋,让大家先睹为快!

核心技术铸就极致性能

CANN5.0相比于3.0版本,在典型推理场景,性能可实现30%到140%的提升;大规模集群训练及常用模型训练,更可达到性能翻番;

CANN 5.0性能大幅提升背后的关键技术有哪些?

任务自动流水

计算启动时过长的数据载入操作会阻塞后续计算流水的启动速度,就好比手机充电电量达到20%才能开机一样让人无法接受。

CANN 5.0将计算指令和数据载入实现多流水并行,该优化允许用户对载入数据进行分段,当载入数据满足分段数据量时即刻启动后续计算逻辑,同时后续数据持续载入,当后续分段数据载入完成且流水空闲时,依次再启动后续计算,充分发挥昇腾AI处理器多流水并行能力,实现无缝多流水衔接。

算子深度融合

随着网络结构的日益复杂,数据在内外存搬运、以及多算子对应多指令带来的性能开销已经越发不可忽视。

CANN 5.0在3.0基础上识别了更多的融合场景,通过多算子自动融合减少计算节点数,有效减少内存拷贝;并且通过灵活可定制的融合规则让计算图中的算子得以最大程度融合,为开发者赢得了更多的计算性能收益。

自适应梯度切分

在大规模集群训练场景下,通常需要进行成千上万次迭代计算,每次迭代包括正、反两个方向的逐层前馈计算。

大部分同步更新算法要求,在下一轮迭代正向计算开始前,各计算节点间需要同步好梯度数据,完成权重更新。这就会导致在两轮迭代之间产生等待间隙,即通信拖尾。

CANN 5.0通过智能梯度切分算法,自动搜索出最优梯度参数切分方式,为梯度传输选择合适的通信时机和通信量,最大限度让计算和通信并行执行,将通信拖尾时间降至最低,可促使集群训练达到最优性能。

AutoTune智能计算调优

就像我们不能期待千篇一律的美颜相机能够修饰出一个绝世美女,类似地,对于不同的网络,如果全部采用简单的数据切分策略,往往会导致计算单元无法满载,性能达不到预期。

CANN 5.0通过智能化数据切分技术,为网络量身定制一个最优的切分策略,实现单个计算单元满载计算,充分利用硬件资源,从而带来可观的性能收益。

同时为了解决调优耗时的问题,CANN 5.0预置了海量模型优化规则,可大大降低调优时长,给用户带来卓越的调优体验。

降低开发者使用门槛

除了性能上带来的惊喜,CANN 5.0更是在3.0基础上进一步简化了代码开发和调测方法,助力开发者实现高效AI开发。

• 支持模型自动迁移,无需手工修改代码,一键式完成模型移植,即刻畅想昇腾910 AI处理器带来的澎湃算力。

• 支持混合编程,在APP中直接调用算子函数,自动完成编译加载并执行。

• 支持自动生成算子测试代码,并可一键式执行出结果。

使能超大模型,加速创新

支持超大参数模型

近2年来,业界出现了非常多的大模型,例如GPT-3,参数量高达1750亿,单独一个大模型就需要月3TB的存储空间,而算力需求更是惊人。

为了解决模型“放得下”的问题,并且以一种友好的、几乎不用改变原有代码的方式让用户使用,CANN5.0在“AI编译器”这个层面,在优化器、梯度、权重等各维度进行模型并行训练。

通过不同层次的模型并行,将原本放不下的模型,分布式地部署在集群上,并且能够以较高的算力利用率进行训练。以83亿的Megatron模型为例,从单卡180GB左右的内存需求量降低到16G以下,这样,超大模型就可以“放得下”了。

支持超大图片计算

除此之外,在某些应用场景下,还可能遇到超大输入数据规格的挑战。

比如遥感应用领域,往往需要从茫茫大海中定位到一艘船,从广袤天空里定位到一架飞机,随着观测技术的进步,这些遥感图像的空间分辨率越来越高,平均可达CHW:4*30000*30000甚至更高,单样本大小往往2-3GB,超大图片计算已经成为了遥感应用产业发展的「卡脖子」问题。

CANN 5.0助力武汉大学打造全球首个遥感专用框架LuojiaNet,解决遥感影像“大幅面、多通道”的处理难题。实验证明,FCN8S模型在处理遥感数据集(图像分辨率3万*3万)时,精度提升显著。这其中隐藏了大量关键技术:

  • 图片大,显存不够怎么办?

充分利用集群优势,根据数据量和集群规模,完成图片自动切分,部署到各计算节点。

  • 特征跨度大,特征丢失,边缘失真怎么办?

在当前切片的卷积运算前,自动计算出具有相邻切片特征的overlap数据,为当前切片提供上下文信息,保证图片精度。

  • 如何高效交换overlap数据?

借助高效的alltoallv算子在相邻节点间收发数据,实现无阻塞通信。

CANN5.0依托自动分解和并行技术,将超大模型的处理同普通模型一样简单,相信在CANN5.0版本的助攻下,一定会促使AI产业不断加速创新,迎来新的爆发期。

ModelZoo全面支持业界主流模型

ModelZoo是昇腾提供的一个优选模型库,其装载的模型能够直接在昇腾AI处理器上高效执行。目前CANN5.0全面支持包括TensorFlow, PyTorch, ONNX在内的业界主流模型400+,同时算子完备度大幅提升。

开发者可移步昇腾社区Modelzoo进行体验。

合众之力,生态阵营蓬勃发展

CANN作为人工智能基础软件平台,持续在基础能力和关键技术上不断突破,但若想走的更远,唯有合众人之力。在过去的1年,CANN面向开发者的生态全面展开:

迄今为止,昇腾社区活跃度较去年提升3倍;当前已汇聚40万开发者,3千核心开发者,并计划于2022年发展百万开发者,1万核心开发者;累计与超过200家高校研究团队开展合作,众智项目贡献200+个模型及500+个算子。

聚是一团火,生态建设是使能AI产业持续发展的原动力,通过开放、合作、共赢的方式,CANN将不断携手合作伙伴,全方位、多维度支撑AI产业,助力人工智能繁荣发展!

点击关注,第一时间了解华为云新鲜技术~

CANN 5.0硬核技术抢先看相关推荐

  1. CANN5.0硬核技术抢先看

    1引言 2018年9月,CANN 1.0华为昇腾AI使能平台诞生: 2020年8月,CANN 3.0版本发布,作为专门面向AI场景的异构计算架构,搭起了上层深度学习框架和底层AI硬件平台的桥梁,开发效 ...

  2. MySQL8.0新特性抢先看,性能又双叒提升了,真香啊

  3. 速看丨传智教育全链路+UI/UE设计学科V6.0硬核来袭!

    梦,该如何去追? 都说城市安不下肉身,老家容不下灵魂,选择毕业后回老家偏安一隅,还是留在大城市努力拼搏,是每个年轻人一闭眼就要思考的问题. 每一份梦想都值得被尊重,每一份努力都值得被赞赏,但想留在大城 ...

  4. 7 大主题、9 位技术大咖。龙蜥大讲堂7月硬核直播预告抢先看,今天见~

    「龙蜥大讲堂」7 月精彩预告来了,点击下方海报就可抢先看.本月又是满满的技术干货分享,多位大咖带你共享技术盛宴!提前扫码进群,参与互动还有龙蜥精美周边等你来拿. 7 月精彩分享直达

  5. 这就是华为速度:2.69分钟完成BERT训练!新发CANN 5.0加持,还公开了背后技术

    金磊 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 快,着实有点快. 现在,经典模型BERT只需2.69分钟.ResNet只需16秒. 啪的一下,就能完成训练! 这是华为全联接2021上 ...

  6. 【第106期】10本硬核技术书,带你读懂物联网,玩转元宇宙

    导读:元宇宙可能是当前比较火的科技概念,作为元宇宙的技术支撑,5G和物联网将逐步成为新时代的"基础设施".今天为大家推荐10本关于5G.物联网以及边缘计算的硬核技术书. 1 元宇宙 ...

  7. 国际嵌入式大会精彩内容抢先看!

    关注+星标公众号,不错过精彩内容 来源 | 上海国际嵌入式展 创办于2003年的德国纽伦堡embedded world嵌入式展,作为全球嵌入式行业的焦点,不仅每年能吸引到欧洲乃至全球重要生产厂商和应用 ...

  8. 这10本硬核技术书,带你读懂5G、物联网和边缘计算,玩转元宇宙

    导读:2022开年,元宇宙可能是当前最火的科技概念.作为元宇宙的技术支撑,5G和物联网将逐步成为新时代的"基础设施".今天为大家推荐10本关于5G.物联网以及边缘计算的硬核技术书. ...

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

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

最新文章

  1. 什么是QoS技术?—Vecloud微云
  2. 毕业5年,我是怎么成为年薪30W的运维工程师
  3. java 高效批量插入 sqlserver 数据库
  4. 计算机专业伦理总结,《计算机伦理学》节译实践报告
  5. mysql索引(b+tree)小记
  6. Shell编程进阶 1.3data命令
  7. spring整合dubbo实现简单分布式接口调用
  8. 码匠编程:CSS让元素绝对居中,你知道几种方法?
  9. CSDN—编写博客(快捷键)
  10. javaWeb新闻管理系统
  11. 《Javascript高级程序设计(第四版)》学习笔记(一)第1、2章
  12. pid温度控制算法c语言程序,温度控制的PID算法的C语言程序
  13. Linux:解决centos7每次更换IP方法
  14. php模拟登陆青果教务系统
  15. 六, 跨语言微服务框架 - Istio Ingress和Egress详解(解决Istio无法外网访问问题)
  16. 超表面远场三维辐射图,MATLAB
  17. 解决cd: string not in pwd的问题
  18. 【ReID】局部特征
  19. Prometheus+Alertmanager+webhook-dingtalk实现钉钉告警
  20. 从业务架构师视角解读区块链

热门文章

  1. (68)Vue-cli 目录与文件
  2. (27)StyleLint—CSS代码格式校验
  3. (7)<a>标签之锚点和回到顶部功能
  4. DJL | DJL 如何正确打开 [ 深度学习 ]
  5. CSS3 文本阴影 text-shadow属性
  6. 计算机单招语文试题,2019年高职单招语文模拟试题
  7. CAN笔记(21) 服务数据对象
  8. 如何在java中实现线程_用代码说话:如何在Java中实现线程
  9. mysql交给spring管理_Mysql事务结合spring管理
  10. mysql数据库连接锁住_锁mysql方法