用于人工智能设备的灵活数据流处理器和处理方法与流程

文档序号:16471199发布日期:2019-01-02 23:07阅读:266来源:国知局
用于人工智能设备的灵活数据流处理器和处理方法与流程

本发明是涉及人工智能技术领域,具体的说是用于人工智能设备的灵活数据流处理器和处理方法。



背景技术:

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

人工智能特征图通常可以描述为四维张量[n,c,y,x]。这四个维度为,特征图维度:x、y;通道维度:c;批次维度:n。内核可以是四维张量[k,c,s,r]。ai工作是给出输入特征图张量和内核张量。还可以进行其他操作,比如规范化、激活。这些可以在通用硬件运算器中支持。因此,需要一种更优的硬件架构和数据处理方法,能够更加灵活高效的处理数据流。



技术实现要素:

本发明要解决的技术问题是提供用于人工智能设备的灵活数据流处理器和处理方法。

为解决上述技术问题,本发明采用的技术方案为:

用于人工智能设备的灵活数据流处理器,其特征是:包括前叶引擎、顶叶引擎组、枕形引擎和颞叶引擎;

所述的前叶引擎内设置有瓦片块调度器,前叶引擎接收张量信息,瓦片调度器将张量分成若干个瓦片块,前叶引擎将瓦片块分配到顶叶引擎组中;

所述的顶叶引擎组包括若干个顶叶引擎,顶叶引擎内设置有瓦片分派器和波块调度器,所述的瓦片分派器获取瓦片块并将其分割成若干瓦片,波块调度器获取瓦片并将其分成若干波块;

所述的顶叶引擎内还设置有若干个流感知器处理器,流感知器处理器内设置有波块分派器,波块分派器能够将波块分成若干波,流感知器处理器内还设置有神经元站,神经元站由若干个神经元块组成,波在神经元块中进行特征渲染;

所述的枕形引擎接收并整理渲染后的部分张量,并输出;

所述的颞叶引擎接收枕形引擎输出的张量信息,进行后处理并将最终张量写入内存中。

为优化上述实用新型,采取的具体措施还包括:

所述的张量信息中一个张量具有5个维度,包括特征图维度:x、y;信道维度c、k,其中c表示输入特征映射,k表示输出特征映射;n代表批次维度。

所述的枕形引擎的架构方式为统一渲染架构,具体包括:渲染特征被发送回顶叶引擎,顶叶引擎完成渲染后,将结果发送回枕形引擎。

所述的前叶引擎以轮询调度的方式将组张量发送给顶叶引擎,所有的流式感知器处理器共享一个l2缓存和一个导出块。

所述的流感知器处理器内的神经元块具有乘法累加器组,每个乘法累加器组可以处理具有相同特征的信息。

用于人工智能设备的灵活数据流处理方法,其特征在于:一个张量具有5个维度,包括特征图维度:x、y;信道维度c、k,其中c表示输入特征映射,k表示输出特征映射;n代表批次维度;将张量分成若干个瓦片块,再将每个瓦片块分成若干个瓦片,再将每个瓦片分成若干个波块,再将每个波块分成若干个波,并将具有相同渲染特征的波在相同神经元块中进行处理;

其具体步骤如下:

步骤1,前叶引擎中的块瓦片调度器通过驱动程序接收来自应用程序的张量信息,根据应用的要求,瓦片调度器将张量分成若干瓦片块,这些瓦片块以轮询调度的方式分配到顶叶引擎组中;

步骤2,顶叶引擎中的块瓦片分派器获取瓦片块并对α维度的瓦片块进行分割形成若干个瓦片,其中α维度为n或c或k维度;

步骤3,顶叶引擎中的块波调度器获取瓦片并对其x、y维度进行分割形成若干波块,波块被发送到顶叶引擎中的流感知器处理器中;

步骤4,流感知器处理器中的块波分派器获取波块并将其以β维度为基准分成若干波,其中β维度为n或c或k维度;

步骤5,流感知器处理器中的神经元站会加载激活和权重,并进行神经元处理;

步骤6,神经元站中的神经元块中有乘法累加器组,每个乘法累加器组处理具有相同β维度的波。

步骤1中瓦片调度器将张量分出的瓦片块数量与顶叶引擎组中顶叶引擎数量相同。

瓦块、瓦片、波块和波的大小是可编程的。

用于人工智能设备的灵活数据流处理器和处理方法能够达到的有益效果为:人工智能工作被分成许多高度平行的部分,有些部分被分配到一个引擎中进行处理,引擎数量是可配置的,从而提高了可扩展性,所有的工作分区和分配都在此架构中实现,通过灵活的控制和数据重用,我们可以节省功耗并实现更好的性能,以此获得高性能功效。

在处理数据流的过程中,将这些工作并行分发到计算机内核中,且此分发可由用户控制用以重用ai特征图。具体来说ai工作可以分布到多个顶叶引擎中进行并行处理,并实现权重重用、激活重用、权重站重用、部分和重用。数据流中有一些选项可用于获得权重并行和激活并行。

附图说明

图1为引擎流程图。

图2为引擎级架构图。

图3为数据流流程图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述。

用于人工智能设备的灵活数据流处理器,其特征是:包括前叶引擎、顶叶引擎组、枕形引擎和颞叶引擎;

所述的前叶引擎内设置有瓦片块调度器,前叶引擎接收张量信息,瓦片调度器将张量分成若干个瓦片块,前叶引擎将瓦片块分配到顶叶引擎组中;

所述的顶叶引擎组包括若干个顶叶引擎,顶叶引擎内设置有瓦片分派器和波块调度器,所述的瓦片分派器获取瓦片块并将其分割成若干瓦片,波块调度器获取瓦片并将其分成若干波块;

所述的顶叶引擎内还设置有若干个流感知器处理器,流感知器处理器内设置有波块分派器,波块分派器能够将波块分成若干波,流感知器处理器内还设置有神经元站,神经元站由若干个神经元块组成,波在神经元块中进行特征渲染;

所述的枕形引擎接收并整理渲染后的部分张量,并输出;

所述的颞叶引擎接收枕形引擎输出的张量信息,进行后处理并将最终张量写入内存中。

进一步的,张量信息中一个张量具有5个维度,包括特征图维度:x、y;信道维度c、k,其中c表示输入特征映射,k表示输出特征映射;n代表批次维度。

进一步的,枕形引擎的架构方式为统一渲染架构,具体包括:渲染特征被发送回顶叶引擎,顶叶引擎完成渲染后,将结果发送回枕形引擎。

进一步的,前叶引擎以轮询调度的方式将组张量发送给顶叶引擎,所有的流式感知器处理器共享一个l2缓存和一个导出块。

进一步的,流感知器处理器内的神经元块具有乘法累加器组,每个乘法累加器组可以处理具有相同特征的信息。

本实施例中,如图1所示,人工智能工作可以被视为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进行一些数据压缩,并将最终的张量写到内存中。

本实施例中,如图2所示,在前叶引擎(frontalengine,简称fe)中,张量被分成若干组,这些组会被送入顶叶引擎(parietalengine,简称pe)。每个顶叶引擎根据用户定义的输入特征渲染器(if-shader)处理这些组,并将部分和输出到枕形引擎(occipitalengine,简称oe)中。oe收集输出张量并调度输出特征渲染器来进一步处理张量。

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

如图3所示,用于人工智能设备的灵活数据流处理方法,其特征在于:一个张量具有5个维度,包括特征图维度:x、y;信道维度c、k,其中c表示输入特征映射,k表示输出特征映射;n代表批次维度;将张量分成若干个瓦片块,再将每个瓦片块分成若干个瓦片,再将每个瓦片分成若干个波块,再将每个波块分成若干个波,并将具有相同渲染特征的波在相同神经元块中进行处理;

其具体步骤如下:

步骤1,前叶引擎中的块瓦片调度器通过驱动程序接收来自应用程序的张量信息,根据应用的要求,瓦片调度器将张量分成若干瓦片块,这些瓦片块以轮询调度的方式分配到顶叶引擎组中;本实施例中,张量为(n=32,k=128,c=64,y=256,x=256),而瓦片块为(n=4,k=8,c=16,y=16,x=16)。共有8*16*4*16*16瓦片块。这些瓦片块以轮询调度的方式分配到我们设备中预先设置的四个顶叶引擎中。

步骤2,顶叶引擎中的块瓦片分派器获取瓦片块并对α维度的瓦片块进行分割形成若干个瓦片,其中α维度为n或c或k维度;本实施例中,瓦片块为(n=4,k=8,c=16,y=16,x=16)在c通道中被分为四个瓦片,每个瓦片均为(n=4,k=8,c=4,y=16,x=16)。

步骤3,顶叶引擎中的块波调度器获取瓦片并对其x、y维度进行分割形成若干波块,波块被发送到顶叶引擎中的流感知器处理器中;本实施例中,波块是(n=4,k=8,c=4,y=4,x=4)。波调度器创建了16个波块。波块被发送到顶叶引擎中预先配置的两组流感知器处理器中。

步骤4,流感知器处理器中的块波分派器获取波块并将其以β维度为基准分成若干波,其中β维度为n或c或k维度;本实施例中,波是(n=1,k=8,c=1,y=4,x=4)。有16个波被发送到nr(神经元)进行处理。

步骤5,流感知器处理器中的神经元站会加载激活和权重,并进行神经元处理;

步骤6,神经元站中的神经元块中有乘法累加器组,每个乘法累加器组处理具有相同β维度的波。本实施例中,每个神经元块中具有8个乘法累加器组,波中的8个k映射到8个乘法累加器组,每个乘法累加器组处理不同的k(权重),但是相同的x和y(激活),这意味着激活重用。四个神经元共享相同的8个k,这表示权重重用。在n维中,4个特征图在神经元中共享相同的权重,这表示权重站重用。在c维中,4个不同的通道在同一个神经元中处理,这表示部分和重用。

瓦块、瓦片、波块和波的大小是可编程的,以便应用程序选择配置以获得最佳性能。

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

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