CANN 5.0硬核技术抢先看
摘要:2021年12月,CANN5.0版本也将与大家正式见面,通过软硬件协同优化,该版本将会实现训练性能再翻倍,凭实力展现AI领域的「中国速度」!
摘要: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产业,助力人工智能繁荣发展!
更多推荐
所有评论(0)