加速人工智能处理器的硬件架构的制作方法

文档序号:16584083发布日期:2019-01-14 18:14阅读:282来源:国知局
加速人工智能处理器的硬件架构的制作方法

本发明属于人工智能领域,具体涉及一种加速人工智能处理器的硬件架构。



背景技术:

人工智能(ai)处理是近来的热门话题,它既是计算和内存密集型,也要求高性能-功耗效率。使用cpu和gpu等当前设备加速并不容易,许多如gpu+tensorcore、tpu、cpu+fpga和aiasic等解决方案都试图解决这些问题。gpu+tensorcore主要着眼于解决计算密集问题,tpu着眼于计算和数据重用,cpu+fpga/aiasic注重提高性能-功耗效率。

然而,gpu只有三分之一的逻辑用于ai,所以不可以获得更高的性能功效。tpu需要更多的软件工作来重塑数据布局,并将作业进行分割,并将它们发送到计算核心。至于cpu和dsp解决方案,它们的计算机核心是矢量处理器,不适用于ai管道工程。

因此,我们发明了以下的硬件架构以解决这些问题,虽然还有很多其他的aiasic,但是我们的aiasic具有更好的架构。



技术实现要素:

本发明针对现有技术中的不足,提供一种加速人工智能处理器的硬件架构。

为实现上述目的,本发明采用以下技术方案:

一种加速人工智能处理器的硬件架构,其特征在于,人工智能工作被视为5d张量,在每一维度中,工作被分成若干组,每一组进一步被分成若干波;

其中,硬件架构包括:主机、前叶引擎、顶叶引擎、渲染器引擎、枕形引擎、颞叶引擎和内存;前叶引擎从主机得到5d张量,并将其分为若干组张量,并将这些组张量发送至顶叶引擎;顶叶引擎获取组张量并将其分成若干张量波,顶叶引擎将这些张量波发送到渲染器引擎,以执行输入特征渲染器,并将部分张量输出到枕形引擎;枕形引擎积累部分张量,并执行输出特征渲染器,以获得发送到颞叶引擎的最终张量;颞叶引擎进行数据压缩,并将最终张量写入内存中。

为优化上述技术方案,采取的具体措施还包括:

每个顶叶引擎根据用户定义的输入特征渲染器处理组张量,并将部分和输出到枕形引擎中。

在统一渲染架构中,执行输出特征渲染器具体为:输出特征渲染器被发送回顶叶引擎,一旦顶叶引擎完成渲染,将结果发送回枕形引擎。

在分离渲染架构中,执行输出特征渲染器具体为:输出特征渲染器在枕形引擎中进行处理,枕形引擎将输出张量发送到颞叶引擎,颞叶引擎进行后处理,并将其发送到dram或者保持在缓存中以进一步处理。

顶叶引擎的数量是可配置的,前叶引擎以轮询调度的方式将组张量发送给顶叶引擎,每个顶叶引擎由特定的流式感知器处理器组成,所有的流式感知器处理器共享一个l2缓存和一个导出块。

流式感知器处理器由运算器和作为计算核心的神经元组成,运算器核用于一般计算,神经元核用于人工智能计算,神经元由l1缓存和乘法累加器组成。

张量波被发送到神经元,神经元在张量波上运行输入特征渲染器,结果被导出到枕形引擎,枕形引擎进行必要的累加后将结果发送回顶叶引擎,顶叶引擎在运算器上进行输出特征渲染器,并将结果输出到颞叶引擎。

顶叶引擎的数量为4个,每个顶叶引擎有2个流式感知器处理器,每个流式感知器处理器有4个神经元,每个神经元有8个乘法累加器组,每个乘法累加器组有4个乘法累加器。

本发明的有益效果是:人工智能工作被分成许多高度平行的部分,有些部分被分配到一个引擎中进行处理,引擎数量是可配置的,从而提高了可扩展性,所有的工作分区和分配都在此架构中实现,以此获得高性能功效。本发明能够加速人工智能的工作,可以使用可扩展性来配置产品以满足不同的客户需求,同时提供高性能功效。

附图说明

图1是人工智能特征图。

图2是矩阵乘法图。

图3是人工大脑引擎的流程图。

图4是引擎级架构图。

图5是可扩展架构的细节图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。

如图1所示,人工智能特征图通常可以描述为四维张量[n,c,y,x]。这四个维度为,特征图维度:x、y;通道维度:c;批次维度:n。内核可以是四维张量[k,c,s,r]。ai工作是给出输入特征图张量和内核张量,我们根据图1中的公式计算输出张量[n,k,y,x]。

人工智能中的另一个重要操作是矩阵乘法,这个操作也可以映射到特征图处理中。在图2中,矩阵a可以映射到张量[1,k,1,m],矩阵b映射到张量[n,k,1,1],结果c是张量[1,n,1,m]。

此外,还有其他的操作,比如规范化、激活,这些可以在通用硬件运算器中支持。

我们提出一个硬件架构来有效地支持这些操作,人工智能工作可以被视为5维张量[n,k,c,y,x],在每一维度中,我们把这些工作分成许多组,每一组可以进一步被分成若干波。在我们的体系结构中,第一个引擎-前叶引擎(frontalengine,简称fe)从主机得到5d张量[n,k,c,y,x],并将其分为许多组张量[ng,kg,cg,yg,xg],并将这些组发送给顶叶引擎(parietalengine,简称pe)。pe获取组张量并将其分成若干波,将这些波发送到渲染器引擎,以执行输入特征渲染器(if-shader),并将部分张量[nw,kw,yw,xw]输出到枕形引擎(occipitalengine,简称oe)。oe积累部分张量,并执行输出特征渲染器(of-shader),以获得发送到下一个引擎-颞叶引擎(temporalengine,简称te)的最终张量。te进行一些数据压缩,并将最终的张量写到内存中。图3为该设计的流程图。

根据ai算法,我们发明了一种高度可扩展、可并行、可编程且高效的架构。在这种体系结构中,ai工作被分成小部分,这些部分被发送到许多计算机核心进行处理。部分总和可以在计算核心中累积,然后发送到后端块进行进一步处理,如最终累积、池化和激活;也可以对这些后端块进行编程来运行其他通用计算。

图4是架构的引擎级流程图,我们将之称作“人工大脑架构”,该架构对于多种计算能力要求是完全可扩展的。一般情况下,在前叶引擎(frontalengine,简称fe)中,张量被分成若干组,这些组会被送入顶叶引擎(parietalengine,简称pe)。每个顶叶引擎根据用户定义的输入特征渲染器(if-shader)处理这些组,并将部分和输出到枕形引擎(occipitalengine,简称oe)中,oe收集输出张量并调度输出特征渲染器来进一步处理张量。

执行输出特征渲染器(of-shader)有两种方法:在统一渲染架构中,输出特征渲染器被发送回顶叶引擎,一旦顶叶引擎完成渲染,它会将结果发送回oe;在分离渲染架构中,输出特征渲染器在oe中进行处理,oe的结果将输出张量发送到颞叶引擎(temporalengine,简称te),te进行一些后处理,并将它们发送到dram或将它们保存在缓存中以进一步处理。

为了可扩展性,顶叶引擎的数量是可配置的,前叶引擎以轮询调度的方式将组张量发送给顶叶引擎,因此很容易添加/减少顶叶引擎。每个顶叶引擎由特定的spp(流式感知器处理器,streamingperceptronprocessor)组成,如图5所示。所有这些spp共享一个l2缓存和一个导出块,spp由一些一般的运算器和一些作为计算核心的神经元组成,一般的运算器核用于一般计算,而神经元核用于人工智能计算。对于一般计算的不同细分市场,这两种核心的比例为架构的关键。

神经元由l1缓存和某些乘法累加器(multiplier-accumulator,简称mac)组成。张量波被发送到神经元,其在这些张量波上运行一个输入特征渲染器,结果被导出到枕形引擎,枕形引擎做一些必要的累加并将结果发送回顶叶引擎。顶叶引擎在运算器alu8上运行输出特征渲染器,并将结果输出到颞叶引擎。

在实施例中,我们有4个顶叶引擎,每个顶叶引擎有2个spp,每个spp有4个神经元,每个神经元有8个mac组,每个mac组有4个mac。本发明所提出的架构非常新颖,且能使ai工作非常高效。

需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

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