华为的AI实力究竟如何?

最近,华为发布了Ascend 910 AI处理器和相应的Mind Spore AI框架,成为华为在人工智能领域又一次重要的发布。

作者:李飞

来源:半导体行业观察

最近,华为发布了Ascend 910 AI处理器和相应的Mind Spore AI框架,成为华为在人工智能领域又一次重要的发布。

Ascend 910性能分析

这次Ascend 910的主要目标是在云端应用,以训练为主。常规的AI芯片主打推理,而相对而言针对训练的AI芯片技术门槛更高。首先,训练AI芯片的算力需求和芯片规模常常要远大于推理芯片,因为在训练中需要处理的数据量会远大于推理,而规模更大的芯片则在工程上提出了更高的挑战,在内存访问、散热等方面都需要仔细设计。例如,目前主流的训练芯片都会使用HBM等基于3D/2.5D封装的内存接口以实现超高速内存访问,而这就大大提高了设计门槛。

其次,AI训练芯片对于规模化(scalability)的要求非常高。在AI训练应用中,分布式训练是一个必选项,例如训练模型时常常会使用分布在8台服务器上的64块训练加速芯片。如何在硬件上支持多卡多机训练,保证训练性能随着使用加速芯片数量接近线性增长也是一项非常具有挑战的工作,这需要加速芯片能支持高速数据接口,这也是Nvidia提出NVLink(用于单机多卡)以及收购Mellanox(用于多机)的原因。

在性能方面,我们看到Ascend能实现256 TFLOPS的FP-16算力,或512 TOPS的INT8算力,而功耗是310W。目前,训练主要使用FP-16实现,而512 TOPS的INT-8算力目前预计主要针对的是低精度推理,或许在未来随着低精度训练技术的发展也能支持一些模型的训练。256TFLOPS的峰值FP-16算力从目前来看大约是Nvidia V100 (120TFLOPS)的两倍,而目前公布的训练实测结果(单机Ascend 910训练ResNet50大约是Nvidia V100的两倍)也与该数字相符。相比其他AI芯片初创公司,Habana的Gaudi芯片训练ResNet的性能是Nvidia V100的3.8倍,相对而言和Ascend 910在同一数量级上。此外,Google的TPU v3根据公布的数据训练性能和Nvidia V100基本相当,因此可以说Ascend 910的单机训练性能站在了世界的领先水平。

不过,目前的数据并未展示Ascend的分布式训练性能,而该性能将会成为实际使用中最重要的性能。随着芯片测试进程,我们预计华为会在合适的时间公布这个数字,让我们拭目以待。

Ascend 910+MindSpore软硬件协同设计

除了Ascend 910之外,华为还在同一个发布会上着重介绍了其机器学习框架MindSpore。事实上,自研机器学习芯片加上机器学习框架将是华为在机器学习领域的一个重要投资。

即使单纯从性能的角度考虑,MindSpore和Ascend 910的搭配预期也将能实现非常显著的提升。从单机性能来看,机器学习框架和机器学习芯片协同设计的优势在于可以实现最优的硬件调度和算子性能优化。目前主流的卷积神经网络的主要算子是卷积运算,因此如何将该算子映射到硬件上高效执行将是实现高性能的关键。

随着深度学习发展日新月异,新的算子层出不穷,而这就需要机器学习框架和芯片能给予有力的支持。除了算子之外,运算调度也是一个重要的方面。如何实现计算和内存访问的延迟匹配以减少内存访问对于计算性能的影响,以及如何确保片上内存数据的复用最大化将极大地影响性能。两者相结合,就是如何支持多种训练的数据流,包括前馈神经网络,循环神经网络等等。目前GPU对于循环神经网络的支持就不够高效,因此如何将机器学习框架和芯片协同设计以支持多种数据流是实现高性能的必经之路。

从分布式计算来看,MindSpore也是非常重要的性能保证。分布式计算是一个系统工程,在工程上有众多挑战,例如如何保证不同机器之间的负载分布合理,如何结合硬件设计保证高效训练同步等等都是需要一个强而有力的机器学习框架。

之前由于机器学习框架设计和硬件设计是分开的,因此往往做的是软件设计协同芯片设计,即首先设计较为抽象的机器学习框架,之后再根据当前最新的硬件模型去做相关的代码优化以保证能较为高效地运行在硬件上。一些较为底层的软件,例如TVM,也能实现算子和调度的优化。然而,这样的做法并未将硬件设计带入到反馈环中,它做的只是软件迁就硬件。这样的主要缺点在于:

(1)软件设计对于硬件的未来路线图缺乏把握,因此软件框架如果在一开始设计的思想和假设和硬件发展的未来路线图不符就会造成性能下降。

(2)硬件在设计时没有足够关于软件框架方面的考虑,由于对于软件和应用的把握不足,往往只能选择用性能换通用性。而华为这次选择把软件(MindSpore)和硬件(Ascend系列芯片)做协同芯片可以使用软硬件协同设计的方法来挖掘系统的整体性能,并且保证在未来的发展路线图上不会出现两者路线图相背离,从而确保长期的性能领先。

生态体系,目标应用市场

此次华为发布云端计算芯片Ascend 910加MindSpore,几乎就是直接对标谷歌的TPU加Tensorflow。然而,由于华为的商业模式与谷歌的不同,我们认为华为此举的目标并非是在这一代商业模式上和互联网巨头竞争,而是将直接瞄准下一代多种尺度混合的云。

随着人工智能的发展,我们认为它正在成为重要的生产力。在人工智能生产力中,如果说数据是燃料的话,那么云端算力就是新的发动机,取决于公司能多快多好地为目标应用训练和部署新的机器学习模型。随着人工智能相关的新应用日新月异(消费者应用如语音接口,美颜,视频生成,商业应用如信息流推荐系统,用户画像等等),云端算力决定了一个新的应用从构思到人工智能模型训练完成到应用正式上线的速度,这也是我们看到谷歌等互联网巨头大举布局云端算力的原因。这些互联网巨头布局云端算力的首先目标还是自用(因此TPU从推出到目前主要还是谷歌自用),可以加速其人工智能应用上线速度。

然而,华为与这些互联网巨头相比,其最大的不同在于数据量有限。由于华为目前的主要商业模式还是在于基础设施和消费者硬件市场,因此其收集的数据量和互联网公司来说相差巨大,因此自身对于算力的需求其实并没有那么大。因此,华为布局人工智能芯片和机器学习框架的主要目的我们认为不只是自用,而是为了布局下一代智能云。

下一代搭配5G的智能云可以拆解成几个部分。首先是本地算力(终端/边缘计算),其次是无线数据传输,而在云端则是云端处理能力。华为目前在第二个无线数据传输环节拥有最大的领先优势,而随着5G加边缘计算范式的来临,华为大概率能拥有边缘计算领域的话语权,因此可以凭借自己在这方面的地位和话语权去推动边缘计算加人工智能,这也是去年华为首先发布边缘计算芯片Ascend 310的原因,以打通本地算力和无线传输环节。而随着华为在云端推出强算力的Ascend 910芯片,华为将会在云端也将慢慢追赶现有的领先云服务商。

在云端,下一代智能云和这一代云的主要区别就在于对于算力的强调,这也是我们看到亚马逊、谷歌、阿里巴巴、华为、百度等重点发展云计算的公司都在大力发展自己的芯片。除了算力之外,下一代云的另一个特点是计算和数据产生/处理都会发生在不同的地方(终端,边缘和云端),这些不同的运算和处理场景都有其独特的特点,因此需要能有一个统一的框架将这些异构的数据计算统一在一起,这也是华为发布MindSpore的重要目的。华为在下一代云领域的优势在于其布局非常完整,从多场景多规格芯片算力到数据传输都有积累,因此其完整的技术栈将会为华为在下一代云市场的重要优势。

格隆汇声明:文中观点均来自原作者,不代表格隆汇观点及立场。特别提醒,投资决策需建立在独立思考之上,本文内容仅供参考,不作为实际操作建议,交易风险自担。

相关阅读

评论