2.69秒完成BERT训练,华为CANN5.0速度展示
目前经典模型BERT只需要2.69秒,ResNet只需要16秒。
啪,可以完成训练了!
这是华为全连接2021针对异构计算架构CANN 5.0发布的最新性能预热:
4K老电影AI修复,原本需要几天时间,现在几个小时就能完成,
针对不同车型进行智能优化,300款车型可获得30%的性能提升,
与训练推理框架不同,异构计算架构在设计时需要考虑硬件和软件的特点。
目的是尽可能提高AI模型的计算效率,减少训练和推理所占用的时间。
它的存在使得开发者在使用AI模型时能够最大化硬件的性能。
为什么异构计算架构很重要,升级后的CANN 5.0有何特点和优势。
我们采访了华为新兴计算业务副总裁金瑛,从CANN 5.0的功能解读中寻找答案。
什么是AI异构计算架构。
通常,人工智能模型分为两步首先选择一个框架来构建AI模型,如Caffe,Tensorflow,PyTorch,MindSpore等然后选择合适的硬件来训练AI模型
但是,在AI训练框架和硬件之间,其实有一个不可或缺的中间架构来优化AI模型在处理器上的运行性能,这就是AI异构计算架构。
与同构计算不同,异构计算是指高效,合理地将任务分配给不同的硬件,如用于浮点运算的GPU,用于神经网络运算的NPU,用于定制编程计算的FPGA.
面对各种AI任务,AI异构计算架构将充当引导者,根据硬件特性进行分工,以组合拳加速训练/推理速度,最大限度发挥异构计算优势。
如果我们不重视,当各种硬件处理AI任务时,可能会出现长跑运动员被迫举重的情况,硬件的计算能力和效率并不是最优的,甚至可能比单纯使用CPU/GPU还要慢。
目前,越来越多的企业和机构已经注意到异构计算架构的重要性,并开始布局相关技术,其中许多技术将向开发者开放。
但是当开发人员使用这些异构计算架构时,他们会逐渐发现一个问题:
很多AI异构计算架构基本都是针对一个或几个特定场景设计的,比如安全,客服等AI应用较为成熟的场景,对于为其他场景设计的AI模型,异构计算架构的性能会下降。
正如安全公司为了安全优化AI模型一样,这样的异构计算架构往往不具备平台通用性。
因此,开发者在训练不同的AI模型时,需要在不同异构计算架构的各种处理器之间反复跳转,寻找最高效的训练方法。
这期间不仅要学习各种算子库,张量编译器,调优引擎的特点,还要选择具体的训练框架,非常复杂。
相比之下,华为从2018年AI战略制定之初就选择了不同的路线。
华为新兴计算业务副总裁金瑛在接受采访时表示,
我们相信AI模型会逐渐从单一的,基于场景的模型走向通用的模型,而瑞星系列就是为整个场景设计的解决方案。
其中,瑞星CANN作为平台级异构计算架构,经过三年多的优化,迭代了四大版本。
现在,最新的预热版CANN 5.0已经在各种场景的模型和任务中展现出了不错的效果。
CANN 5.0升级带来了哪些新功能。
与正在崛起的CANN 3.0相比,跨代5.0版本带来三大优势:
Performance :AI模型训练/推理性能大幅提升,时间更短,
首次发布:推理引擎ATC Suite1.0,AI模型推理性能更高,功能更全面。
便利:代码开发调试进一步简化,包括支持混合编程等使用门槛较低
在性能方面,无论是训练规模,场景类型还是推理效率都有了很大的提升。
其中,在大规模集群列车上进行了测试
从上图可以看出,原本需要6.25秒训练的BERT模型,在CANN 5.0的加持下增加了一倍多,仅用了2.69秒就完成了训练至于ResNet,3.0版本需要28秒的训练,5.0版本重新进化到16秒
至于一些常用的小模型训练场景,5.0版本的性能提升也是明显的:
除了训练之外,5.0版本的推理性能在不同场景下也很不错。
显然,无论是训练还是推理,CANN 5.0都实现了更高效的任务调度和更好的性能提升。
功能上,CANN 5.0首次发布了升腾推理机的软件包ATC Suite1.0,包含模型压缩,张量编译,智能优化,媒体预处理硬加速等能力。
模型压缩,包括量化,稀疏,张量分解等工具像AMCT模型压缩工具一样,浮点数据可以被压缩以减小模型大小并加快推理速度
智能优化可以为用户提供在线调优能力,包括图分析,子图/算子自动调优,模型编译优化等进一步加快ATC的计算速度
此外,推理引擎还包括Ascend CL全栈能力调用,可以轻松处理多通道复杂音视频处理等特殊场景,以及ACE操作管理等功能,到达
于在线/离线切换的推理模式,也让部署场景更加灵活。
在便捷性上,5.0 版本又进一步降低了开发者的使用门槛。
例如,无需开发者手工修改代码,5.0 版本支持模型自动迁移。
又例如,进一步支持混合编程。相比于 3.0 的手动加载模型,5.0 版本在 App 中可以直接调用算子函数,自动完成编译加载并执行:
3.0 版本
5.0 版本
再例如,相比 3.0,5.0 版本现在还能自动生成算子测试代码,省去不少步骤:
可以说是对开发者新人也很友好了。
可是,相比于表面带来的更高性能,更全面的功能应用,异构计算架构的性能优化,并不如想象中随便调调参一般简单,而是需要大量的技术支撑。
性能优化有多难。
将原本需要跑上几天的模型训练时间,缩减到几小时甚至几秒,背后绝不仅仅靠的是硬件的堆叠。
其中 CANN 5.0 的一个关键技术,就是集群训练。
据金颖介绍,相对于单机训练,增加训练模型的机器数量,往往并不一定能收获线性的效率提升。
在训练过程中,多台机器虽然整体上拥有更多算力,但这些算力是分散的,彼此在进行数据交互的过程中,实际上又降低了训练效率,这也一直是集群训练的一个瓶颈。
昇腾选择用图计算的原理,来分析集群训练的流水线分布,内存分配,针对不同机器的特点进行了架构上的设计,合理分配各个节点中的内存和通讯时间,来提高机器整体的计算效率。
具体来说,CANN 5.0 版本在性能优化上,主要自研了 4 点技术:
其一,任务自动流水。
我们都在打游戏的时候感受过数据加载的痛苦,这是因为硬件需要一定的时间来反应,包括加载计算指令等,但在数据量大的情况下,这显然会极大地延缓整体计算时间。
5.0 实现了计算指令和数据载入的多流水并行,载入数据满足分段数据量时,不仅启动后续计算逻辑,还保持数据继续载入,进一步压榨硬件处理器的并行计算能力,实现任务衔接。
其二,算子深度融合。
算子是支持 AI 模型训练与推理的基本运算单元及组合,异构计算架构基本都要有自己的算子库5.0 版本重新定制了更灵活的算子融合规则,通过多个算子自动融合提升模型训练效率
其三,自适应梯度切分。
这项技术,是华为针对集群训练提出的智能梯度切分算法,具体针对模型训练中的迭代计算进行了优化。
CANN 5.0 能通过智能梯度切分算法,自动搜索出最优梯度参数切分方式,让计算和通信进一步并行执行,使得通信拖尾时间降至最低,梯度调优时间降低 90%。
其四,AutoTune 智能计算调优。
不同的 AI 模型,如果架构只用一种方式进行计算分配的话,势必会造成不适配的情况。
因此,CANN 5.0 研究出了智能数据切分技术,提出最优切分策略,确保每个计算单元被充分利用,平均性能提升 30% 以上。
5.0 版本也预置了海量模型优化,能极大地缩短开发者的调优时间。
如何评价昇腾 CANN 5.0。
一方面,无论是 AI 模型,还是硬件层面的架构优化,都是 AI 技术走向更复杂的通用化的一个体现。
对于 AI 模型来说,更加通用的模型,并非仅仅是参数越堆越多的结果。
目前的通用 AI 模型,无论从训练数据,还是架构设计本身来看,技术上都还有许多亟待完善的地方:由数据带来的模型偏见,架构设计的冗余和不可解释性。
显然,AI 模型面临的这些问题,不可能单纯通过模型变大来彻底得到解决。
对于硬件也是如此,当下 AI 行业对于算力需求的扩大,同样不可能只通过硬件的堆砌来填补空缺。
如何在单个硬件算力受限的情况下,充分利用每个硬件的性能,达到算力 1+1=2 甚至是>2 的效果,是 AI 行业的每个参与者都必须思考的问题。
异构计算架构,是高效利用不同硬件算力的解决方案之一,对于它来说,通用化也是同样复杂的一个问题。
相比于单纯为某一场景,或某一功能而设计的专用异构计算架构,适用于全平台,全场景的通用型异构计算架构,从实现到优化上都要复杂得多。
这里的难度,不仅仅在于实现功能上的通用性,而是在同样场景下,将对 AI 模型的性能优化做得和专用架构一样好。
从这个角度来看,不可能存在一个一劳永逸的技术解决方案。
无论是 AI 模型还是异构计算架构,都必须不断推陈出新,打破自己和行业的固有认知,与时俱进,才可能在变幻莫测的时代浪潮中保持身位。
另一方面,回过头看历史潮流,仅凭创新,也不足以让技术实现可持续发展,究其根本,还是要回归现实,解决实际应用问题。
要守住过去继承下来的技术地位,又要迎头直面实实在在的新问题,对华为已是竞争中的必修课。
正如华为轮值董事长徐直军在全联接大会 2021 上所言:
数字化将注定是一个长期的过程,不可能一蹴而就。
我们所从事的这些技术领域,有幸处在变化最活跃的环节。
声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。