2022 年 1 月,华为昇腾 CANN 的首席架构师闫长江教师做客机器之心「2021-2022 年度 AI 技能趋势洞察」的「工程专场」直播间时,为我们带来了主题为「昇腾异构估计架构CANN的技能进展和未来展望」的相关报告。
闫长江教师的分享内容主要分为以下三部分:
对AI趋势发展的看法
昇腾异构估计架构的最新进展
昇腾生态的一些策略和进展
AI 作为现在一种新的技能会对未来的社会产生巨大的影响
在对 AI 趋势发展的看法上,闫长江教师谈到 AI 作为现在一种新的技能会对未来的社会产生巨大的影响,我们甚至可以把 AI 技能跟历史上几次伟大的革命相对比,包括过去的蒸汽时代、电力时代,以及现在的信息化互联网时代。近期人工智能的发展主要有两个大方向,第一个方向是:从大模型走向超大模型。像 GPT 从一开始的 15 亿参数发展到现在 GTP 3 有 1000 多亿参数,华为盘古有 2000 亿参数,以及未来可能有这个 Switch Transformer 可能到万亿的参数。事实上这是一个必然,要想掌握海量数据里面的知识提取,就需要更大的模型来表达。另一个方向是:从单模态到多模态。以前 AI 的发展主要是专注于单个领域,比如语音、图像这些单个领域。而将来可能逐渐地走向多模态这个领域的发展,同时可以处理语音、图像、文本来处理更多的问题。
人工智能要成为一项广泛使用的技能,要处理怎么能让大量的企业用得上用得好,而当前还有很多问题要处理
接着闫长江教师向我们介绍昇腾异构估计架构的最新进展。闫教师指出人工智能将来要成为一项广泛使用的技能,要处理怎么能让大量的企业用得上用得好,当前还有很多问题要处理。主要面临以下三个问题:
算力昂贵
人才稀缺
开发难度大
针对这些难点,华为昇腾异构估计架构主要也是为了处理基础算力这一问题。目前 AI 在算力上面临的新挑战、新趋势以及新问题主要存在于四个方面:估计新范式、异构估计、大集群、推理部署。
CANN 是昇腾 AI 全栈的核心,发挥承上启下的关键作用
针对以上的问题,昇腾的核心 CANN 对上适配多框架,对下适配多异构芯片,针对多样化使用场景,提供高效易用的编程方式,是突破 AI 产业平台的关键。
CANN 的架构从内部核心来看包含:估计执行引擎、张量编译器、算子库。从外部来看,最重要的是提供了几个编程接口。第一个是算子开发接口,该编程接口能够让开发者在昇腾芯片的基础上定义基础算子。另一个是模型编程接口,也就是构图接口,可以让开发者定义自己的模型。再来运行使用部署可以调用 HL 使用开发接口来把定义好的模型加载到系统上去运行调试。
CANN 异构估计架构在 2021 年取得了一些重大的进展和突破。这里闫教师跟我们分享了取得突破的四项关键优化技能:
主动流水
算子深度融会
自适应梯度切分
智能估计调优
第一项是主动流水技能。AI 的估计里面,在一个芯片内也是有多引擎、编解码的单位、随机数发生器的单位,有 CPU 单位,也有矩阵估计单位 (Cube Unit) 、向量估计单位 (Vector Unit) ,把 host 、 device 这些异构的估计单位,通过估计的并行让它能够流水起来。这样在单个芯片内和 host 的协作完成一次流水。在大规模集群里面,也采用类似的一些流水技能去优化整体性能。所以第一项关键技能就是把能够流水并行的进行流水并行。
第二项优化是算子的深度融会。采用算子深度融会可以实现在 AI Core 内部直接进行估计,性能得到大幅提升,并且融会主动化还支持融会规则灵活定制。
第三项是自适应梯度切分。在大规模集群训练中,因为需要梯度更新,如果每次把每一层的梯度都直接进行同步,这样产生拖尾比较大,中间相当于没有流水。采用自适应梯度切分是通过分析网络的每一个估计耗时,通过分析梯度数据量,还有通讯的带宽等数据主动地去决定在什么时刻同步梯度,就把前前前后后几层梯度融到一起去进行同步。这样到最后拖尾就会变得很小,这样使得整个通讯同步基本上能接近于理论性能的 90% 以上。
最后是内部使用了大量的智能估计调优。在 CANN 异构估计架构中有个 AOE 模块用于完成各种调优。这里的调优实际上是包括算子本身的调优,自适应梯度调优等,通过调优工具来主动地完成很多优化的选择,这样使得整个模型的性能大大的提升。
华为 ModelZoo 在业内主流 Model 数量上有一个巨大的提升,助力开发者实现高性能推理使用
闫长江教师谈到在助力开发者实现高性能推理使用上,华为 ModelZoo 中在业内主流 Model 的数量上有一个巨大的提升,针对各个框架提供的 Model ,在 ModelZoo 中都已帮助调试优化。当用户要使用的 Model 在 ModelZoo 中,ModelZoo 内的模型都是经过迁移的,下载即可在昇腾平台使用。同时昇腾还专门为推理提供了一套工具包。这个工具包包括几个功能,一个是编译器,比如提供 Tensorflow 的图,这个编译器可以主动帮你编译成生成高性能估计的模型。另外还提供了一个量化工具,推理的很多情况是为了追求高性能,需要做一个量化。这样这个完整的工具包能够帮助开发者快速地把一些推理使用编译部署到系统上。
2021 CANN 在社区建设的各项指标中取得三倍的增长
最后,闫长江教师向介绍了昇腾生态的一些策略和进展。2021 年昇腾达到了差不多 60 万的开发者,期望 2022 年能进一步发展到百万开发者以上。昇腾生态主要考虑有这么几个方面:一个是 CANN 社区的建设。在 2021 年各项指标有了 CANN 社区各项数据都有了三倍的一个增长。另外还和各个科研院校有很多合作关系来一起改进昇腾技能。同时也有一些众智成果,来把更多的模型迁移到昇腾的生态上。