摘要: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. Django 2.0 新特性 抢先看!

    一.Python兼容性 Django 2.0支持Python3.4.3.5和3.6.Django官方强烈推荐每个系列的最新版本. 最重要的是Django 2.0不再支持Python2! Django ...

  2. 2.69分钟完成BERT训练!新发CANN 5.0加持

    摘要:快,着实有点快. 现在,经典模型BERT只需2.69分钟.ResNet只需16秒. 啪的一下,就能完成训练! 本文分享自华为云社区<这就是华为速度:2.69分钟完成BERT训练!新发CAN ...

  3. Android P新功能特性抢先看

    2018年3月8日,Google推出了Android P Preview版本,并提供官方镜像下载. 为了让广大开发者能够及时了解Android P的新功能特性,提前为您的app进行良好适配,WeTes ...

  4. 【转】OpenStack奥斯汀峰会Keynotes国内抢先看

    http://www.openstack.cn/?p=5341 OpenStack奥斯汀峰会Keynotes国内抢先看入口:http://www.tudou.com/home/_903780397/i ...

  5. .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验

    .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验 .NET Standard 2.0 is final Broad platform support. .NET Standa ...

  6. Win10《芒果TV》送7天免费会员,邀您抢先看萌心自制《妈妈是超人3》

    <妈妈是超人>第三季萌心归来,霍思燕,贾静雯,黄圣依,邓莎联合释放"妈妈的声音",嗯哼,咘咘,波妞,安迪,大麟子五位萌娃共同出镜,萌化屏幕.Win10<芒果TV& ...

  7. 我们建了一个 Golang 硬核技术交流群(内含视频福利)

    目录 目录 Golang 是什么? 我们为什么选择 Golang? Golang 是云时代的宠儿! 我们搞了一场 Golang 入门直播 Golang 是什么? Golang 是谷歌 2009 年发布 ...

  8. C# 8.0 抢先看-- Async Stream

    异步流? Async Stream 简单说来是一种非同步的迭代器模式,说更白一点就是可以await 的foreach.在过去的C# 中如果要回传一个可迭代的IEnumerable<T> , ...

  9. ThinkSNS+ alpha.2 版本发布,功能抢先看!【社交系统研发日记六】

    今天的研发日记,我们不讲技术,我们来看看,社交系统TS+从今天开始全面内测开始,都发布了什么功能. 其实,alpha.1 早上打的 tag ,晚上因为增加了两个核心功能,所以又打了 alpha.2 t ...

  10. 第五个神奇的电梯(代码抢先看<1>)

    关于一些自认为比较独特的设计思路,也不知道是好还是坏,放在这里让大家一起看一下. 关于mian函数:因为采用了注册机制所以主函数比较简单. #include "stdafx.h" ...

随机推荐

  1. 虹科分享 | 一起聊聊Redis企业版数据库与【微服务误解】那些事儿!

    如今,关于微服务依然存在许多误解,企业盲目追求这种炫酷技术并不可取.同时,这种盲目行为对于希望用微服务来有效解决问题的公司很不利.不是说任何特定的技术都是缺乏实际价值的,如微服务.Kubernetes ...

  2. Python 利用pandas和matplotlib绘制柱状折线图

    创建数据可视化图表:柱状图与折线图结合 在数据分析和展示中,经常需要将数据可视化呈现,以便更直观地理解数据背后的趋势和关联关系.本篇文章将介绍如何使用 Python 中的 Pandas 和 Matpl ...

  3. Vue 2.x源码学习:数据响应式改造

    内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 相关学习笔记: rend ...

  4. Welcome to YARP - 8.分布式跟踪

    Welcome to YARP - 1.认识YARP并搭建反向代理服务 Welcome to YARP - 2.配置功能 2.1 - 配置文件(Configuration Files) 2.2 - 配 ...

  5. 京东广告研发近期入选国际顶会文章系列导读——CIKM 2023篇

    近年来,放眼业界广告推荐领域的算法获得了长足的发展,从几篇奠定基础的序列学习.大规模图学习.在线学习&增强学习.多模态推荐问题等起步,业内算法不断迭代发展并在学术和工业场景上取得不错的应用. ...

  6. 平稳扩展:可支持RevenueCat每日12亿次API请求的缓存

    平稳扩展:可支持RevenueCat每日12亿次API请求的缓存 目录 平稳扩展:可支持RevenueCat每日12亿次API请求的缓存 低延迟 建立连接池 故障检测 Up and warm 对故障做 ...

  7. Vue源码学习(十七):实现computed计算属性

    好家伙,本章我们尝试实现computed属性 0.完整代码已开源 https://github.com/Fattiger4399/analytic-vue.git 1.分析 1.1computed的常 ...

  8. VideoPipe可视化视频结构化框架更新总结(2023-12-5)

    项目地址:https://github.com/sherlockchou86/video_pipe_c 往期文章:https://www.cnblogs.com/xiaozhi_5638/p/1696 ...

  9. [HAOI2018] 字串覆盖

    [HAOI2018]字串覆盖 题目描述 小C对字符串颇有研究,他觉得传统的字符串匹配太无聊了,于是他想到了这 样一个问题. 对于两个长度为n的串A, B, 小C每次会给出给出4个参数s, t, l, ...

  10. [USACO2007FEBS] Cow Party S

    题目描述 寒假到了,\(n\) 头牛都要去参加一场在编号为 \(x\) 的牛的农场举行的派对,农场之间有 \(m\) 条有向路,每条路都有一定的长度. 每头牛参加完派对后都必须回家,无论是去参加派对还 ...