「硬件是 AI 的基础,但软件是核心。目前华为昇腾有 70% 研发人员专注于软件的开发,希望能把昇腾处理器的潜力全部发挥出来。」华为昇腾计算业务总裁许映童说道。
在本周举行的 HAI 2020 新品发布会上,华为发布了迄今为止业界最完整的 AI 全栈软件平台,覆盖从基础软件到应用能力的所有方面,在推出业内最强 AI 处理器「昇腾」系列之后,软件成为了华为昇腾技术发展的新方向。
华为昇腾计算业务总裁许映童在发布会上。
这是华为首次披露昇腾 AI 全栈软件平台的所有能力。
价格更低,性能翻倍
后摩尔定律时代,人们要想获得算力提升,很大程度上需要仰赖计算堆栈的「顶层」,即软件、算法和硬件架构,这将成为一个新的历史趋势。前不久,刊登在 Science 上的一篇文章《There’s plenty of room at the Top: What will drive computer performance after Moore’s law?》引起了人们的广泛讨论:研究人员指出,在软件层面上,我们还能找到大幅度提升 AI 计算性能的方法。
在 HAI 2020 大会上,华为展示了 Atlas300I 单卡支持 80 路 1080P 智能视频分析的能力,这个数字是目前竞争对手 Tesla T4 的两倍。在这背后,既有硬件架构的设计,也有强大软件的功劳。
截止 2018 年,国内的摄像头的数量就已经超过了 2 亿个,摄像头的数量越来越多,视频数量暴增,然而大部分视频内容是无效的,想要剔除大部分无效视频数据,需要人工智能技术对视频进行智能分析。对于技术供应者和用户来说,智能视频分析技术需要大规模应用需要解决算法精度的问题,并不断降低应用成本。
随着近年来深度学习等技术的发展,AI 算法识别的精度已不成问题,但越来越多的数据、不断倍增的模型算力需求和缓慢的芯片制程提升之间存在不小的矛盾。
华为的 Atlas 300I 单卡视频分析能力,可以为公安、交警等部门,以及不少企业用户在应用场景中带来巨大的便利。
一张推理卡接管 80 路高清视频,这是怎么做到的?从视频解码到系统优化,华为在任务处理的每个环节上都做了极致的优化。
首先,在进行人脸识别、视频结构化、动作识别等智能视频分析之前,我们需要将视频流解码为图片流,随后才能输出给深度学习算法。每块昇腾 310 芯片中都搭载了 DVPP 硬件单元,至少可支持 16 路 1080P@30fps 的视频解码需求,对于 25FPS 的视频流,则可以支持超过 20 路——在每张 Atlas 300I 卡上,有 4 块这样的芯片。
Ascend(昇腾)310 芯片的逻辑结构图。
在视频解码之后,我们还希望在计算卡上进行数据的临时存储。在这里,智能视频分析路数越多,需要缓存的目标图像数量就越大,存储空间占用量也就越大。在 Atlas 310I 计算卡上,华为塞进了共计 32GB 的 DDR 存储空间。
另一方面,由于异构计算架构 CANN 3.0 对视频解码流程和底层驱动进行了优化,每路 1080P 视频的解码存储空间占用量可以小于 90MB。
在硬件部署之后,设备的算力峰值是固定的,进一步提升算法性能的任务就落在了软件优化上。华为的工程师希望从算子性能和神经网络结构两方面提升算力效率。昇腾系列处理的离线模型转换工具 ATC 集成了大量深度优化后的算子和算子融合规则,在离线算子转化过程中会对计算图进行优化和融合,从而提升硬件资源占用率,提升网络性能。
从之前的各种实验结果看,昇腾处理适合于 YOLO V3、Inception V3、ResNet 系列神经网络的加速,因此在智能视频分析任务(如动态人脸识别)中,我们可以选择类 YOLO V3 架构(如 YOLO V3-Tiny)的算法模型作为目标检测算法,Inception V3、ResNet 系列算法作为分类、特征提取算法或其他网络模型的主网络,可以极大的提升处理性能,充分发挥算力优势。
在以上四个优化步骤之后,华为还有多线程时间并行、合理多 Batch 推理、异构资源优化等方式进一步对整个流程的各部分进行优化,充分利用异构计算资源,提升了系统的线性程度,提高了吞吐量。
使用昇腾芯片进行智能视频分析,大幅度降低了视频分析的单路硬件成本,为 AI 智能视频分析技术的大规模推广奠定了基础。
极简易用的昇腾 AI 全栈软件平台
Atlas300I 业内最佳性能的成绩,是华为昇腾软件强大的体现。
不仅效率极高,而且简单易用,华为在 HAI 大会上新发布的产品包括异构计算架构 CANN 3.0、全场景 AI 计算框架 MindSpore、全流程开发工具链 MindStudio 2.0、昇腾应用使能 MindX 等。提供的能力覆盖从算子、模型开发到应用开发等所有方面:简而言之,就是可以用一套工具搞定所有任务。
「把简单留给别人,把复杂留给自己。华为昇腾 AI 全栈软件平台可以最大程度发挥硬件性能,降低 AI 应用开发的门槛。」许映童在发布会上表示。
此前,想把最先进的 AI 技术应用到实践中去,我们面临着不少挑战。「对于行业用户来说,选择哪些 AI 模型是一个难以抉择的问题。我们看到很多客户还在使用三四年前提出的,较为落后的模型,他们的技术升级速度较慢,技术难倒英雄汉。」许映童说道。
AI 算法到产品化应用有很远,从模型获取,数据准备到最终的适配开发,初创企业没有时间和精力完整走完所有历程。即使对于一些大公司来说,人工智能的人员专业性需求高,同样影响了 AI 技术在产业落地。
这些问题,华为认为都不应该由开发者来解决,新发布的 MindX 和 CANN 3.0,就是为了让 AI 直接可用而生的。
「汽车司机关心的是如何把人和货物准确送到目的地,而不会去研究汽油如何炼化,或发动机如何工作,」华为昇腾计算业务 CTO 周斌博士说道。「我相信大量行业应用的 AI 开发者更需要 AI 能力的支持,而不是研究原理。这就是我们推出 MindX 的初衷:把复杂的工作交给 MindX,你只需关注如何开发应用,如何把 AI 能力集成进去。」
MindX 1.0 带来了「2+1+X」模式,其中的 2 是指两个平台 MindX DL(Atlas 深度学习平台)和 MindX Edge(Atlas 智能边缘平台),分别面向云端和边缘侧;1 指优选模型库 Model Zoo,而 X 则是使能各行业的 SDK 工具,先期开放的包括视觉SDK mxVision 和制造 SDK mxManufacture。
另一个重要是软件系统是 CANN 3.0 异构计算架构。自 2018 年随华为第一代 AI 芯片发布起,CANN 已经走过两个大版本的更新,8 月 10 日发布的 CANN 3.0 核心理念在于统一端边云和架构,自动部署,支持多种计算架构,同时支持后向兼容和演进。CANN 3.0 不是简单地软件或平台,它是一个完整的开发体系,其中包含编程语言 TBE,编译及调试工具,还有编程模型。
正是得益于 CANN 3.0 的架构优化,华为实现了一块 Atlas 300I 推理卡实时处理 80 路视频的能力,此前业内最佳的水平是 40 路。华为表示,在实验室里,这个数字还可以更高。
有关人们是如何把 AI 技术应用到各个行业的,华为对开发者做了一个简单的画像:最顶尖的开发者希望进行 AI 算子和神经网络开发,人数只占到 1%——他们需要用到 CANN 3.0 和 Mind Studio 的解决方案。
第二类是占比 10% 的 AI 应用开发者,他们需要 AI 的能力来辅助各类研究。这既需要 AI 基础知识,也需要相关专业领域的知识,他们需要的是开源 AI 框架 MindSpore——在大多数时间内,开发者们无需了解 AI 算法的具体实现。
「第三类开发者,则是把 AI 技术当作一种服务的 90% 客户,他们无需理解应用背后的是 YOLO v3,ResNet50 还是其他什么算法。使用华为全新的 MindX 1.0,可以全面加速这类工作的开发速度。」许映童表示。
发力软件的华为
在以往华为的发布会上,最吸引眼球的往往是硬件和芯片。这次的 HAI 大会则不太一样,华为花费大量篇幅探讨软件的重要性。正如研究人员所说,除了发展新形态的 AI 硬件之外,软硬结合才能发挥 AI 的澎湃算力。而在这一方面,华为也证明了自己能做到最好。
华为的全场景 AI 技术已在很多客户的业务中部署,当然首先就是华为自己。在松山湖园区,基于 Atlas 的智能制造方案已经在计算产品的生产线上实现了大规模应用——AI 技术贯穿了华为制造的每个环节,就连 Atlas 板卡也是使用 Atlas 技术制造的。人工智能在完成标签缺陷检测、螺钉缺失等任务上已可以实现「秒级检测」,将质检准确率由之前的传统机器视觉质检的 90% 提升至 99.9%,质检人员的工作效率提升了 3 倍。
华为已在自家工厂里实现 AI 的工位级、线体级、车间级应用,覆盖了超过 80 个产线,面向云计算、5G 通信、终端等产品。而实现如此大规模的 AI 应用,除了打造软件工具之外,华为只投入了三名开发人员。
「在过去一年里,华为昇腾的生态布局初见成效。目前在国内已有 60 所高校开设了昇腾课程,预计到今年年底,这个数字会增长到 100 个以上,昇腾的开发者数量已达到 4 万多人。这些发展只是小小的第一步,当前的 AI 技术正处在爆发性增长的前夜。」许映童说道。
在 HAI 2020 大会上,华为也为即将推出的昇腾处理器做出了一点预告:搭载新一代芯片的华为 AI 训练卡,其性能超过了英伟达 A100。
做好软硬协同硬核能力,保持开源开放,吸引更多合作伙伴,华为正希望通过领先技术让昇腾领跑产业 AI 的未来。