一种人工智能加速器以及计算机设备的制作方法

文档序号:23651383发布日期:2021-01-15 13:47阅读:52来源:国知局
一种人工智能加速器以及计算机设备的制作方法

本发明涉及人工智能技术领域,尤其涉及一种人工智能加速器以及计算机设备。



背景技术:

信息技术的进步为人工智能的发展提供了基础条件,人工智能算法不断发展。多伦多大学的hinton教授提出了深度学习的概念,近年来以深度学习为代表的人工智能算法在图像分类和识别、语音识别、自然语言处理等领域取得了巨大的进步。

算力是支撑人工智能发展的基础要素之一,随着人工智能的广泛应用,特别是深度学习成为当前人工智能研究和应用的主流方式,人工智能对算力的要求不断提升。为了满足人工智能对算力的需求,具有海量并行计算能力、能够加速ai计算的asic应运而生。asic是为了满足特定的要求而定制的芯片,定制的特点有助于提高asic的性能功耗比,使其相对于cpu或者gpu实现ai加速具有明显的优势。

从应用领域来看,现有技术中的ai加速芯片可用于视频或图像处理、语音处理、自然语言理解、推荐系统等领域。目前的ai加速芯片大多针对某一个应用领域,局限性较大。

从承担的任务来看,人工智能算法可以分为训练和推理两个环节,现有技术中的ai加速芯片在这两个环节都具有应用价值。在训练环节,为了得到一个复杂的深度神经网络模型,需要处理大量的数据,由此带来了巨大的运算量,对处理器的算力、精度、可扩展性、存储带宽等性能要求很高。推理环节是利用训练好的模型,对新的数据做出推论,计算量相对训练环节少很多,对处理器要求较低。目前模型训练通常使用nvidia的gpu集群来完成,常见的ai加速芯片多用于推理加速,支持训练加速的ai芯片较少。

根据部署位置不同,现有技术中的ai加速芯片可以应用于云计算中心、边缘侧或者端侧,不同的部署场景对算力和功耗的要求不同,其中用于云计算中心的ai加速芯片对算力要求最高,并且要求同时具备推理和训练的加速能力;用于边缘侧的ai加速芯片只要求具有推理加速能力,并且对算力有一定的要求;用于端侧的ai芯片对算力要求最低但是对能耗比要求最高;目前常见的ai加速芯片通常只能部署在云计算中心或者端侧,不具备多场景应用能力。



技术实现要素:

有鉴于此,本发明实施例的目的在于提出一种人工智能加速器以及计算机设备,通过同构多核扩展的方式集成多个推理引擎实现算力扩展,从而适配不同应用领域的推理和训练环节,同时满足云边端三个不同的部署位置对算力和功耗的需求。

基于上述目的,本发明实施例的一方面提供了一种人工智能加速器,其特征在于,包括:主机接口,配置用于连接主机;第一ai处理引擎,包括第一运算单元和第一数据存储单元;第二ai处理引擎,包括第二运算单元和第二数据存储单元;以及片上接口,配置用于连接片上互联网络;其中,第一和第二ai处理引擎分别与主机接口和片上接口相连,第一运算单元和第二运算单元之间单向连接,第一数据存储单元和第二数据存储单元之间双向连接。

在一些实施方式中,第一运算单元和第二运算单元之间单向连接包括:第一运算单元输出处理结果,并将输出处理结果作为输入数据发送至第二运算单元。

在一些实施方式中,还包括:第三ai处理引擎,包括第三运算单元和第三数据存储单元;

第四ai处理引擎,包括第四运算单元和第四数据存储单元,

其中第一、第二和第三运算单元各自输出处理结果,并将处理结果作为输入数据发送至顺序的下一运算单元。

在一些实施方式中,每个数据存储单元包括私有存储空间和共享存储空间,私有存储空间配置为ai处理引擎自身的缓存,共享存储空间配置用于供其他ai处理引擎的访问。

在一些实施方式中,还包括:hbm显存,配置用于满足云端芯片对存储带宽的需求,hbm显存与片上接口相连。

在一些实施方式中,每个ai处理引擎配置用于处理网络中的一层,并将输出的结果作为输入数据发送至处理下一层网络的ai处理引擎。

在一些实施方式中,还包括若干其他ai处理引擎,其中,每个ai处理引擎配置用于处理网络中的若干不相邻层,并将输出的结果作为输入数据发送至处理下一层网络的ai处理引擎。

在一些实施方式中,每个ai处理引擎配置用于处理子图像,并将输出的结果作为输入数据发送至下一处理引擎,以对输出的结果进行组合。

在一些实施方式中,结构部署于端侧、边缘侧或云计算中心。

本发明实施例的另一方面,还提供了一种计算机设备,包括上述的人工智能加速器。

本发明具有以下有益技术效果:通过同构多核扩展的方式集成多个推理引擎实现算力扩展,从而适配不同应用领域的推理和训练环节,同时满足云边端三个不同的部署位置对算力和功耗的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明提供的人工智能加速器的结构的实施例的示意图;

图2为本发明提供的ai处理引擎的实施例ai-engine的结构框图;

图3为本发明提供的人工智能加速器的结构的边缘侧实施例的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了人工智能加速器的实施例。图1示出的是本发明提供的人工智能加速器的实施例的示意图。如图1所示,本发明实施例包括:

主机接口011,配置用于连接主机;

第一ai处理引擎021,包括第一运算单元031和第一数据存储单元041;

第二ai处理引擎022,包括第二运算单元032和第二数据存储单元042;以及

片上接口051,配置用于连接片上互联网络;

其中,ai处理引擎021、022分别与主机接口011和片上接口051相连,第一运算单元031和第二运算单元032之间单向连接,第一数据存储单元041和第二数据存储单元042之间双向连接。

在本实施例中,以基本的ai-engine实现推理和训练环节的基本算子,并以此为基础采用同构多核扩展的方式集成多个ai-engine实现算力扩展,从而用一种统一的硬件架构适配不同应用领域的推理和训练环节,同时满足云边端三个不同的部署位置对算力和功耗的需求。基本的处理单元ai-engine设计为一个算力可配置的基于指令集的专用处理器,可以提供2~32tops(int8)的计算力。本发明中为ai-engine设计了专用的指令集,其中包括存储器读写指令、向量或标量运算指令、ai-engine配置指令等。采用指令集设计的优点是可以在软件层面较为准确地控制ai-engine的运行,只要ai-engine支持人工智能算法所需的算子,就可以通过软件层面的优化来支持对应的算法,从而提高灵活性。

图2示出的是本发明提供的ai处理引擎的实施例ai-engine的结构框图。如图2所示,ai-engine主要包括运算单元和数据存储两个部分。ai-engine支持不同算法并且可以应用于推理和训练环节的关键在于要支持对应的基本算子,运算单元提供对各种基本算子的支持,包括以下几个功能模块:指令存储是一块容量较小的片上sram,用来存储ai-engine的指令码,指令码决定了ai-engine需要完成的运算,与指令缓存相比,指令存储的延时确定并且控制简单;取指译码模块实现取指和译码的功能,取指即从指令存储中读取指令码,译码即对取出的指令码进行解析得到必要的参数,从而控制mac阵列、向量运算单元以及标量运算单元的执行过程;由于人工智能算法的执行流程规律性较强,不需要采用复杂的分支跳转指令,取指译码模块的设计相对于通用cpu更简单;mac阵列可以提供大规模并行计算能力,该模块用于实现人工智能算法中占运算量主要部分的乘加运算,由数量可配置的乘加计算单元组织成mac阵列的形式,通过配置乘加运算单元的数量就可以改变ai-engine可以提供的算力(最小2tops,最大32tops),相应地芯片成本也会发生变化。根据不同的配置该模块可以支持不同位宽的定点或浮点数据类型,并且可以根据配置将该模块组织成1dmac、2dmac或者3dmac,不同维度的组织形式可以满足不同人工智能算法的计算需求;向量运算模块由数量可配置的向量运算单元组成,用于实现人工智能算法中可以向量化的算子,比如cnn中常见的池化运算;向量运算单元的数量可以配置从而提供不同的处理能力;标量运算模块用于实现人工智能算法中的标量算子,例如cnn中常见的激活函数等非线性函数,以及某些网络中归一化操作需要的除法运算;标量算子的数量也可以配置以便提供不同的处理能力;数据存储是一块容量较大的片上sram,用于存储计算所需的输入数据和网络参数,并且可以作为中间结果的缓存,此外数据存储也可以作为共享memory被其他ai-engine访问,从而完成ai-engine之间的数据交互,容量较大的片上sram可以提供较大的数据带宽,从而降低对片外存储的带宽需求。

在本发明的一些实施例中,结构部署于端侧、边缘侧或云计算中心。

在本实施例中,端侧设备是指手机、安防摄像头、汽车、智能家居设备以及各种iot设备等终端设备,端侧设备数量庞大并且需求差异较大。以智能手机为例,作为一种多传感器融合的综合数据处理平台,要求ai芯片具备一定的通用性,能够处理多类型任务的能力;而智能手机又受制于电池容量大小和电池能量密度,ai芯片在追求算力的同时对功耗有着严格的限制。对端侧ai芯片来讲,在提供一定的算力(通常在32tops以下)的同时需要具备较高的能效,端侧ai芯片通常只需要完成人工智能算法推理环节的计算。本发明中,单个ai-engine即可满足端侧ai芯片的算力需求。端侧ai芯片需要嵌入设备内部,通常以soc的形态存在,其中ai-engine是提供ai推理加速能力的子系统(协处理器),主机接口实现ai-engine与主处理器之间的交互,可以用axi接口实现。

在本实施例中,边缘设备是指靠近物或数据源头,部署于网络边缘的设备,在边缘端处理数据可以避免将无法在终端完成处理的数据传送到云端进行处理再返回到终端指导业务的过程中产生的延迟大且连接不稳定的问题,同时可以降低数据传输带来的带宽成本。边缘侧设备在信息源附近进行计算,适用于通过数据优化捕获和分析大数据中的关键信息,并且可以直接访问设备,更加高效地服务于端侧设备。对于边缘侧的ai芯片来讲,只需要完成人工智能算法推理环节的计算,边缘侧设备的算力需求为32~100tops(int8)。此时单个ai-engine已经无法提供所需的算力,本发明采用的方法是通过同构多核扩展来增加算力,即在一颗ai芯片内部集成多个ai-engine,以此实现算力的线性增加。对于边缘侧设备,ai加速芯片通常作为单独的芯片应用于加速卡,此时主机接口实现与外部的互联,用pcie接口实现。

在本实施例中,云计算中心的设备主要是大型服务器,需要依靠超高的计算能力完成端侧和边缘侧设备无法完成的对算力要求很高的任务,需要完成海量数据处理和大规模计算,同时还需要支持图片、语音等多种不同的应用,要求具有较强的通用性,此外云端ai芯片需要同时支持推理和训练环节的加速。云端ai芯片的算力需求在100tops(int8)以上,本发明中通过集成多个ai-engine来满足算力需求。并且由于训练环节的数据量太大,对存储带宽要求很高,存储架构与边缘侧和端侧ai芯片也不同。对于云端设备,ai加速芯片同样多以单独的芯片应用于加速卡,主机接口仍然采用pcie接口实现与外接的互联;各ai-engine之间同样可以采用直接互联、通过共享存储互联以及通过片上互联网络互联的方式来实现数据交互;其中的片上hbm是为了代替片外ddr满足云端芯片对存储带宽的需求,hbm同样通过片上互联网络与各个ai-engine互联。

在本发明的一些实施例中,第一运算单元和第二运算单元之间单向连接包括:第一运算单元输出处理结果,并将输出处理结果作为输入数据发送至第二运算单元。

在本实施例中,以集成4个ai-engine提供128tops算力为例,图3示出的是本发明提供的人工智能加速器的结构的边缘侧实施例的示意图。如图3所示,通过ai-engine中计算单元的数据输入输出接口直接互联,数据输出接口用于将计算结果输出作为其他ai-engine的输入,数据输入接口用于接收其他ai-engine的输出。这种方法的优点是数据可以在线传输,延迟较小,并且ai-engine直接相连之后相当于增加了整体的流水线长度,从而提高了并行处理能力;缺点是拓扑结构固定,一旦确定无法更改。

在本发明的一些实施例中,还包括:第三ai处理引擎,包括第三运算单元和第三数据存储单元;

第四ai处理引擎,包括第四运算单元和第四数据存储单元,

其中第一、第二和第三运算单元各自输出处理结果,并将处理结果作为输入数据发送至顺序的下一运算单元。

在本发明的一些实施例中,每个数据存储单元包括私有存储空间和共享存储空间,私有存储空间配置为ai处理引擎自身的缓存,共享存储空间配置用于供其他ai处理引擎的访问。

在本实施例中,通过ai-engine内部的数据存储互联,即通过共享存储器的方式实现数据交互。ai-engine中的数据存储采用多bank的sram实现,可以作为当前ai-engine的私有存储空间,也可以作为共享存储空间供上下左右四个相邻的ai-engine访问。在设计时将整个存储空间分为8个bank,两个bank作为一组,每组内的两个bank以乒乓存储的方式供当前ai-engine和相邻的ai-engine访问,以此避免读写冲突。对于不需要与当前ai-engine做数据交互的ai-engine,其对应的两个bank存储空间可以分配给其他ai-engine使用。这种方式相对于直接互联更灵活,但是如果数据存储作为共享存储空间则当前ai-engine可用的存储空间就会减小,访问外部存储器的次数会增加,对外部存储器的带宽要求更高。

在本发明的一些实施例中,还包括:hbm显存,配置用于满足云端芯片对存储带宽的需求,hbm显存与片上接口相连。

在本实施例中,通过片上互联网络互联,ai芯片中集成的片上互联网络可以提供任意的点对点互联能力,并且可以配置为不同的拓扑结构,这种互联方式最灵活,但是片上互联网络会带来一定的成本增加,并且通过片上互联网络传输数据会有一定的额外开销。对于云端设备,ai加速芯片同样多以单独的芯片应用于加速卡,主机接口仍然采用pcie接口实现与外接的互联;各ai-engine之间同样可以采用直接互联、通过共享存储互联以及通过片上互联网络互联的方式来实现数据交互;其中的片上hbm是为了代替片外ddr满足云端芯片对存储带宽的需求,hbm同样通过片上互联网络与各个ai-engine互联。

在本发明的一些实施例中,每个ai处理引擎配置用于处理网络中的一层,并将输出的结果作为输入数据发送至处理下一层网络的ai处理引擎。

在一些实施方式中,还包括若干其他ai处理引擎,其中,每个ai处理引擎配置用于处理网络中的若干不相邻层,并将输出的结果作为输入数据发送至处理下一层网络的ai处理引擎。

在本实施例中,云端ai芯片或者边缘侧ai芯片中集成了多个ai-engine,ai-engine的数量确定之后ai芯片提供的最大算力就是确定的,但实际工作过程中的负载是不断变化的,为了最大程度地发挥ai芯片的算力,需要为各个ai-engine合理地分配任务,使各个ai-engine配合达到最高的效率。以ai芯片运行cnn网络处理图像为例,说明典型应用场景下各ai-engine的配合。当单个ai-engine足以提供处理单幅图片需要的算力时,单个ai-engine可以处理一幅或者多幅图片,此时将单个ai-engine能处理的最大数量的图像组合成一个任务供ai-engine处理,每个ai-engine并行处理一个任务,并行产生多个输出结果。此时各个ai-engine独立工作,不需要数据交互。而当单个ai-engine无法单独完成一幅图像的处理时,将cnn的每一层的计算作为一个任务分配给一个ai-engine,即n个ai-engine分别处理cnn网络的第1~n层,ai-engine之间相互连接,前一个ai-engine的输出作为后一个ai-engine的输入;待cnn的前n层处理完毕之后,n个ai-engine通过数据存储单元共享前n层的处理数据并分配处理cnn网络的第n+1~2n层,以此类推,直到处理完整个网络。选择ai-engine之间的互联方式时优先选择计算单元之间的直接互联,其次选择通过共享存储器互联,再次选择通过片上互联网络互联,以此最大化地提高数据传输效率。

在本发明的一些实施例中,每个ai处理引擎配置用于处理子图像,并将输出的结果作为输入数据发送至下一处理引擎,以对输出的结果进行组合。

在本实施例中,将待处理的输入图像拆分成若干个可以被单个ai-eneing处理的尺寸较小的子图像,每个ai-engine各自处理一个子图像,处理完成后将输出结果按照特定的地址写入存储器组合成完整的输出图像。为了保证子图像边缘处计算结果的正确,需要在拆分图像时在每个子图像的边缘保留足够的重叠区,在实现时重叠区可以作为ai-engine的输入存储在需要用到该重叠区的每个ai-engine的片内数据存储中,或者只存储一份并且通过共享存储的方式在相邻的ai-engine之间实现数据共享。

需要特别指出的是,上述人工智能加速器的各个实施例中的各个子模块均可以进一步拆分或组合,因此,这些合理的排列组合变换之于人工智能加速器也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。

基于上述目的,本发明实施例的第二个方面,提出了一种计算机设备。包括如前任一实施例阐述的人工智能加速器。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1