Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

李飞作者

华为的AI芯片是互联网公司“造芯”运动的延续

近日,华为在联接大会2018发布了其全栈全场景AI解决方案,涵盖了从终端到云端,从AI芯片到深度学习训练部署框架的多层解决方案,其在AI领域投入的决心可谓巨大。然而,如果仔细分析其具体落地,我们会发现华为的战略特别实用主义,并没有去刻意追求技术上的精致,而是快速做了一个能满足需求的框架,以求先占领市场再做迭代。本文将着重对华为的AI芯片战略做一分析。

多战场全覆盖:华为的雄心壮志

华为在本次大会上公布了其AI战略,涉及的产品无论是深度还是广度都是非常惊人的。首先,从深度来说,其AI相关产品生态包含了从应用接口ModelArt(用于客户的应用直接接入AI功能),中层深度学习软件框架MindSpore,软硬件接口层CANN,直到专用硬件Ascend系列,最终可以为终端和云端的应用赋能。

华为的AI战线之深可谓是全球一流,仅有Google、百度等技术导向明显的互联网公司可以与之匹敌(Google拥有最流行的深度学习框架TensorFlow和芯片TPU,百度则拥有深度学习框架PaddlePaddle和芯片XPU),而诸如微软、亚马逊、腾讯等其他云服务领域厂商的战线深度,尤其是在硬件领域的投入决心,都远远不及华为。

华为的战线如此之深,究其原因无外乎是“有纵深才能有壁垒”。对于华为这样的巨头公司而言,只有把握住了生态链上的每一个环节,把开发者和用户的整个使用循环全部保留在自己的生态圈内,才能形成真正的壁垒,否则只要在任何环节存在空白或者弱项,就有被竞争对手或者新兴公司单点突破的机会。而这样的壁垒一旦形成,不仅仅可以完成对于竞争对手的防御,更可以在整体生态上获得极高的利润——由于完整技术栈的不可替代性,从而可以收获大量利润。Nvidia就是把自己凡是能接触到的生态环节都打通并做到极致的公司,从而产生了极高的壁垒:硬件上有GPU,深度学习框架和软硬件接口层有CuDNN和TensorRT,因此在这几年深度学习人工智能高速发展中,Nvidia几乎占据了不可替代的地位。然而,Nvidia人工智能生态中的底层硬件GPU却存在破绽,由于GPU对于人工智能算法的支持并非完美,因此造成了计算效率不高,也引得群雄逐鹿,众多公司纷纷进入人工智能芯片的战场。从这个角度来看华为正在做挑战Nvidia的事情,借着Nvdia GPU做人工智能效率低的弱点,希望构建自主的技术生态来取而代之。

出了纵向深度之外,华为的战线横向也铺得很开。一旦有了一个设计完善的纵向框架,那么把这个框架在不同算力需求尺度上推广上将是非常容易的,对于华为这样以执行力强著称的公司来说这样的平推战术更是得心应手。一旦战略的深度和广度上都得到良好的执行,其最终的收益将是乘数效应(即收益正比于深度x广度),从而带来惊人的回报。从华为的战略广度来看,既包含终端(低功耗,中低算力),也包含边缘(中等功耗,中等算力)和云(高功耗,高算力)。在之前,华为的业务领域早已包含了从端(华为/荣耀手机以及智能家电)到云(华为云),因此在之前的业务上再部署推广人工智能可谓是水到渠成。

唯快不破:“达芬奇”架构

华为同时注重深度和广度的人工智能战略是以技术为基石的,而其技术栈中最具有挑战性,同时也是最具有区分度的就是底层芯片。为了满足华为战略上的需求,其芯片技术需要满足以下需求:

-性能好,否则难以撼动Nvidia的位置,这毫无疑问是战略深度中最重要的一个要素;

-设计可伸缩性好,同一架构可以通过修改设计规模快速部署到不同算力尺度的应用,从而实现战略广度快速铺开的需求;

-通用性好,能兼容尽可能多的操作;

-上市速度要快。

以上四点要同时满足是非常困难的,尤其是一些非常痴迷于技术的公司,往往会选择去探索新的芯片架构以把前三个需求做到极致,这也就意味着放弃了第四个能快速上市的需求,因为新架构往往意味着较长的研发周期和较大的风险,难以做到快速上市。而华为的选择则是在传统架构上做足够的工程优化,并不追求极致性能,但求能满足用户需求并快速落地。与之对应的是华为使用在Ascend系列芯片中的达芬奇架构。

从Ascend芯片的架构来看,其实就是传统的ARM核+AI加速器的模式,而其AI加速器就是达芬奇核心。达芬奇核心从架构上看起来也并没有使用炫技式的前沿技术,而是简单直接地把计算用的乘加器(MAC)按照不同的计算组织成不同的方式,并搭配标准的数据缓存。当要做人工智能相关的计算时,可以使用按cube(“三维立方”)模式组织的MAC群,从而支持相关计算。当需要其他常规计算时,则可以使用矢量或标量计算MAC。对于不同规模的芯片,可以通过放置不同数量的达芬奇核心来满足需求,因此同一个达芬奇核心的设计可以灵活地满足华为战略横向上不同应用的需求。

这次的大会上,华为发布了Ascend 910和Ascend 310,其中Ascend910针对云端应用,使用7nm工艺在350W的功耗上实现了256 TOPS半精度浮点数算力或512 TOPS 8位整数算力,并且集成了128通道全高清视频解码器;而Ascend 310针对边缘应用,使用12nm工艺在7W的功耗上实现了8 TOPS半精度浮点数算力或16 TOPS 8位整数算力,并且集成了单通道全高清视频解码器。从中,我们可以看到华为的战略横向野心很大,但是第一个落地的市场看来还是机器视觉市场。从公布的芯片性能上来看,这次Ascend 910以及Ascend 310特意提到了视频解码器,显然是与视频应用有关;此外,达芬奇架构中的cube式MAC阵列估计也是为了同时兼顾云端训练应用和机器视觉推理应用而做的选择。从技术上看,cube式MAC阵列非常适合卷积神经网络卷积神经网络是目前机器视觉应用最流行的模型,而机器视觉应用则可以说是这一波人工智能应用中落地幅度最大的。在卷积神经网络中,卷积计算的形式(如下图)可以被达芬奇的cube式MAC阵列高效支持,而决策树、贝叶斯等其他常见机器学习算法在cube式MAC阵列上运行却不见得有什么优势,因此可以猜测达芬奇的架构设计首要目的是为了支持卷积神经网络推理,而优化卷积神经网络推理就意味着主打机器视觉。换句话说,达芬奇架构是在通用性上有意识地做了折衷以换取较合理的开发时间和成本。另一方面,做云端训练的时候由于数据往往是批量到来,因此使用cube式MAC阵列也能一次处理一个批次中的不同并行数据,从而也能较好地支持训练。然而,如果从从架构上做比较,cube式的MAC阵列的效率相比Nvidia GPU的SIMD架构未必会有本质上的提升,因此从训练的角度来看达芬奇架构可以说是Nvidia GPU的替代者,但很难说是超越者。

我们不妨将达芬奇架构与目前最热门的两种商用人工智能芯片架构做比较,即Nvidia的GPU和Google的TPU。Nvidia的GPU架构源自经典的GPU多核并行架构,为了优化人工智能计算,加入了对于矩阵运算的优化支持(Tensor Core)。但是GPU并非天生为人工智能而生,因此在卷积神经网络推理等主流应用上,GPU架构的效率并不高,因此华为达芬奇为卷积神经网络优化过的架构相比GPU的计算效率要强不少。与Google的TPU相比,达芬奇架构则显得更加简单直接。TPU上使用了优美的脉动阵列(systolic array)架构,该架构虽然很久之前就被人们提出,但是迟迟没有找到合适的应用,因此TPU采用脉动阵列从某种意义上可以说是重新发明了脉动阵列,给了脉动阵列以新生。脉动阵列的优势是对于内存带宽的需求大大减少,但是问题在于难以做小,一旦做小了效率就会大大下降——在TPU等级的云端高算力应用脉动阵列是合适的,但是在终端低算力低功耗应用中脉动阵列的效率就不高。因此达芬奇架构相比TPU的脉动阵列来说更灵活,能满足不同算力需求,也即满足了华为AI战略中的横向部分。

最终比拼的还是生态

从之前的分析中,我们的结论是华为的达芬奇架构是一个出色的架构,与Nvidia的GPU和Google的TPU相比性能并不落下风,但是其可伸缩性却远好于GPU和TPU,能快速部署到多个不同算力等级的应用中。为了能充分发挥可伸缩性强的优势,华为的AI芯片必须能尽快进入多个不同的应用领域,因此最终比拼的还是综合生态而非一两个特定应用上的性能对比,正如两军交战最终看的是能否实现战略意图而并不比纠结于一两座城市的得失。那么,在与Google和Nvidia等生态玩家的比拼中,华为有哪些优势和挑战呢?

从公司基因来看,Google是一家技术驱动的互联网公司,Nvidia是芯片硬件公司,而华为则是设备提供商。Google一切业务的源头都是互联网,因此也希望把一切新扩展的业务规划到互联网的范畴中。Google属于第一批看到人工智能潜力的公司,在自己的业务中早早就用上了人工智能,并开发了全球最流行的深度学习框架TensorFlow。当人工智能得到更多认可后, GoogleCloud上开放了深度学习应用接口给用户使用,并且在发现人工智能计算需要新一代芯片后着手研发了TPU。对于Google来说,最关键的生态环节在于人工智能入口即TensorFlow,一旦TensorFlow成为人工智能的绝对主流框架,那么Google就将成为制订下一代人工智能标准化实施方案的主导者,这可以说与当年Google把握了互联网搜索入口如出一辙。另一方面TPU其实只是其生态中并不怎么重要的一环,事实上TPU最早是给Google内部自己使用以节省云计算功耗并加速训练模型用的,Google并没有强烈的让所有用户都用上TPU的决心。Nvidia则是底层芯片硬件公司,最关注的是GPU是否能卖得足够好,CuDNN和TensroRT可以认为是GPU在人工智能时代的驱动程序,但却不是Nvidia的主要盈利点,而Nvidia更不会尝试去做人工智能时代入口之类的尝试,而是会更倾向于把自己定义为“人工智能计算的赋能者”。相比Google和Nvidia,华为事实上在一个更中间的位置,因为华为是一个解决方案提供商,最终是为了解决客户的需求,因此其解决方案中既要包含硬件又要包含软件。华为在底层硬件和上层软件接口上都有与Nvidia和Google重合竞争的部分,但是其解决方案提供者的地位则是与Nvidia以及Google都没有任何竞争。举例来说,如果中国某零售巨头要做智能零售解决方案,需要高速边缘服务器,这样的公司将会是华为的目标客户,却并非Google或Nvidia的目标客户,因为这三家公司中只有华为有意愿给这样的客户提供服务器软硬件以及云端接入的完整解决方案。而此次发布的Ascend芯片则很明显是瞄准了安防、智能零售等新兴机器视觉解决方案市场,在这些市场Nvidia和Google的基因决定了它们都不会涉足。 

虽然目前华为和Google以及Nvidia在边缘计算解决方案领域并没有直接竞争,但是随着华为在云端布局加深,与Nvidia和Google将会有正面竞争。如前所述,Google的TensorFlow是手中的一张王牌,凭着TensorFlow的开放性以及社区建设,目前TensorFlow已经能完美支持多种不同的硬件平台,另一方面华为的MindSpore配合CANN则更像是面对自家芯片做的定制化解决方案,性能卓越但是开放性却可能会成为一个挑战。另一方面,在硬件层面,达芬奇如果想彻底战胜Nvidia的GPU或许还需要在芯片架构上更进一步,如果无法对GPU有数量级的性能优势,最终恐怕还是会陷入苦战。

对AI芯片行业的影响

这次华为大举进军AI芯片,是AI芯片领域的一个重要事件。天下之势,分久必合,合久必分,最初的系统厂商如IBM,SUN等的系统都是包含了自研芯片,直到以Intel为代表的标准化处理器芯片崛起以及计算市场利润变薄后这些系统公司才逐渐放弃自研芯片而转而采用Intel的标准化处理器芯片;而AI市场目前看来潜力巨大,不同场景差异化大而且对于芯片效率有很高的需求,这也就为系统厂商重新开始自研芯片提供了足够的动力。我们认为华为这次自研AI芯片是系统厂商自研芯片趋势的延续,在华为之前,已经有Google、Facebook、亚马逊、阿里巴巴、百度等诸多互联网系统厂商开始了AI芯片研发,而华为作为中国芯片研发能力最强的系统厂商,进入AI芯片领域可谓是理所当然,因为对于系统厂商来说拥有了自研芯片才能拥有真正的核心竞争力。华为这次进军AI芯片预计将会引发更多系统厂商进入AI芯片领域,估计海康、大华、旷视、商汤、依图等都有自研芯片(或者与其他芯片公司合作研发自己专属的定制化芯片)的商业动力,我们在不久的将来预计会看到更多系统厂商发布自己的芯片,反之缺乏自研芯片能力的系统厂商的生存空间将会受到挤压,要么逐渐消失,要么找到新的商业模式。

另一方面,对于AI芯片初创公司来说,华为的AI芯片目前并没有对外销售的打算,因此华为并非直接竞争对手。此外,由于AI芯片细分市场多,差异化大,华为的AI芯片更有可能发挥鲶鱼效应,激励这些AI芯片初创公司去寻找华为无暇顾及的细分市场,例如功耗小于1W的超低功耗市场等等。此外,华为的Ascend系列AI芯片也并非不可战胜,其架构如前所述并非属于常人无法想象的黑科技,而更像是一款经过仔细工程优化的AI加速器。因此AI芯片公司如果拥有下一代技术,即使与华为在云端正面竞争也有胜算。最后,我们必须看到不少AI芯片初创公司实际上也是系统厂商,其AI芯片也是主要供自己的系统使用,如Rokid等。对于这类自研AI芯片的初创系统厂商来说,华为施加的竞争压力会更大,因为华为实际上走了和这些厂商一样的道路,本来这些初创公司系统中的亮点是自研芯片,但是现在相对于同样拥有自研芯片的华为来说这个就不再成为亮点了。对于这些厂商,如何找到属于自己的差异化市场避开华为的锋芒就成了目前亟待解决的问题。

矽说
矽说

产业AI芯片华为
3
相关数据
来也科技机构

来也科技是中国乃至全球的智能自动化领军品牌,为客户提供变革性的智能自动化解决方案,提升组织生产力和办公效率,释放员工潜力,助力政企实现智能时代的人机协同。 来也科技的产品是一套智能自动化平台,包含机器人流程自动化(RPA)、智能文档处理(IDP)、对话式AI(Conversational AI)等。基于这一平台,能够根据客户需要,构造各种不同类型的数字化劳动力,实现业务流程的自动化,全面提升业务效率。

www.laiye.com/
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

边缘计算技术

边缘运算(英语:Edge computing),又译为边缘计算,是一种分散式运算的架构,将应用程序、数据资料与服务的运算,由网络中心节点,移往网络逻辑上的边缘节点来处理。边缘运算将原本完全由中心节点处理大型服务加以分解,切割成更小与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于用户终端装置,可以加快资料的处理与传送速度,减少延迟。在这种架构下,资料的分析与知识的产生,更接近于数据资料的来源,因此更适合处理大数据。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

云计算技术

云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。

批次技术

模型训练的一次迭代(即一次梯度更新)中使用的样本集。

推荐文章
暂无评论
暂无评论~