首页> 中国专利> 改进AI引擎MAC利用率的数据格式变换方法

改进AI引擎MAC利用率的数据格式变换方法

摘要

本发明提供一种改进AI引擎MAC利用率的数据格式变换方法。数据格式转换器重新布置输入图像的数据,用于输入到乘积累加运算处理元件的脉动阵列。图像在等于每个像素的颜色数量的通道数量中具有像素高度和像素宽度。数据格式转换器将数据重新布置到第二更多数量的通道,并将第二数量的通道输入到脉动阵列的一侧。第二数量的通道少于或等于脉动阵列的一侧的MAC PE数量,导致脉动阵列中更大的MAC PE利用率。

著录项

  • 公开/公告号CN112837208A

    专利类型发明专利

  • 公开/公告日2021-05-25

    原文格式PDF

  • 申请/专利权人 百度(美国)有限责任公司;

    申请/专利号CN202011287840.2

  • 发明设计人 郭敏;

    申请日2020-11-17

  • 分类号G06T3/00(20060101);G06N3/02(20060101);

  • 代理机构11201 北京清亦华知识产权代理事务所(普通合伙);

  • 代理人韩海花

  • 地址 美国加利福尼亚州桑尼维尔波尔多道1195

  • 入库时间 2023-06-19 11:05:16

说明书

技术领域

本发明涉及人工智能领域,尤其涉及一种改进人工智能引擎的MAC利用率的数据格式变换方法。

背景技术

具有乘积累加运算(multiply and accumulate,MAC)处理元件(processingelement,PE)的脉动阵列的人工智能(artificial intelligence,AI)引擎用于图像处理、图像识别和其他计算任务。通常,图像数据通过3个通道输入到脉动阵列中,每个通道各自用于红色、绿色和蓝色(RGB)。脉动阵列可以用于实现神经网络,也称为人工神经网络(artificial neural network,ANN)。持续需要改进脉动阵列、AI引擎和神经网络的效率和操作。

发明内容

在第一方面中,提供一种人工智能引擎,包括:

数据格式转换器,用于将与每个像素的颜色数量相对应的第一数量的通道中具有像素高度和像素宽度的输入图像的数据重新布置到第二数量的通道,其中第二数量的通道多于第一数量的通道,第二数量的通道中的每个具有较小的像素高度、较小的像素宽度和颜色中的一种的数据;以及

在一侧具有N个MAC PE的M×N个MAC PE的脉动阵列,用于接收和处理第二数量的通道数据,使得与将第一数量的通道的数据输入到脉动阵列相比,在脉动阵列中的第一卷积层推理和第二卷积层推理中利用更多的MAC PE。

在第二方面中,提供一种操作人工智能引擎的方法,包括:

将与每个像素的颜色数量相对应的第一数量的通道中具有像素高度和像素宽度的输入图像的数据布置到第二数量的通道,其中第二数量的通道多于第一数量的通道,第二数量的通道中的每个具有较小的像素高度、较小的像素宽度和颜色中的一种的数据;以及

将第二数量的通道的数据输入到在一侧具有N个MAC PE的M×N个MAC PE的脉动阵列,使得与将第一数量的通道的数据输入到脉动阵列相比,在脉动阵列中的第一卷积层推理和第二卷积层推理中利用更多的MAC PE。

在第三方面中,提供一种非暂时性计算机可读介质,其中存储有指令,所述指令在由处理器执行时使处理器执行如第二方面所述方法的操作。

根据本发明,可以实现MAC PE的更高利用率。

附图说明

通过参考以下结合附图的描述,可以更好地理解描述的实施例及其优点。在不脱离描述的实施例的精神和范围的情况下,这些附图决不限制本领域技术人员可以对描述的实施例进行的形式和细节上的任何改变。

图1是根据本公开的实施例的具有N×N个MAC PE的脉动阵列的AI引擎的框图,其示出数据格式转换器的两个示例位置。

图2示出如数据格式转换器所执行的将输入图像的数据从3个通道(红色、绿色、蓝色)重新布置为12个通道以用于改进脉动阵列中的MAC PE利用率的示例。

图3描绘将输入图像的数据从3个通道重新布置为12个通道的示例的更多细节。

图4描绘在实施例中将数据整形到AI引擎中的数据转换器。

图5描绘对于各种数量的通道,比较脉动阵列中MAC PE利用率的实验结果。

图6示出在数据格式转换器的实施例中将输入图像的数据从3个通道(红色、绿色、蓝色)重新布置到48个通道的示例。

图7是在实施例中操作AI引擎的方法的流程图。

具体实施方式

将参考下面讨论的细节描述本公开的各种实施例和方面,并且附图将示出各种实施例。以下描述和附图是本公开的说明,并且不应被解释为限制本公开。描述许多具体细节以提供对本公开的各种实施例的透彻理解。然而,在某些情况下,没有描述公知的或常规的细节,以便提供对本公开的实施例的简要讨论。

在说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性可以包括在本公开的至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”并不一定全指同一实施例。

当在脉动阵列(一般有M×N个乘积累加运算(MAC)处理元件(PE))中执行图像处理时,第一卷积层由于输入图像的较大空间尺寸而通常表示所执行的总计算的10%-15%。输入通道常常是RGB(红色、绿色、蓝色)格式,或者是3个通道的图像数据(其在神经网络的推理的第一对卷积层中具有低的MAC利用率)。第一对卷积层中的计算不能很好地映射到基于PE阵列的AI引擎体系结构中,因为在第一对卷积层中提供较少的通道,这意味着可能无法利用大部分的阵列输入带宽。特别是,如果PE大小(即,脉动阵列中的PE的数量)较大,则第一对层的MAC利用率低。

该问题的一种解决方案使用两个脉动阵列,一个脉动阵列专门指定给第一层,另一个脉动阵列用于CNN中剩余的卷积层。本文描述的解决方案使用一个脉动阵列和使图像数据的通道数量更紧密地匹配脉动阵列的第一对层中的每层中的PE数量,并实现MAC PE的更高利用率的格式转换器。

在一个实施例中,一种AI引擎包括脉动阵列和数据格式转换器。M×N个乘积累加运算(MAC)处理元件(PE)的脉动阵列在一侧上具有N个MAC PE,用于输入多达N个通道的图像数据。数据格式转换器重新布置输入图像的数据。输入图像的数据在第一数量的通道中具有像素高度和像素宽度。第一数量的通道等于每个像素的颜色数量。数据格式转换器将数据重新布置到第二更多数量的通道。该第二数量的通道中的每个通道具有较小的像素高度、较小的像素宽度和颜色中的一种的数据。数据格式转换器将第二数量的通道输入到脉动阵列的一侧。第二数量的通道小于或等于N并且比第一数量的通道更接近N,与用于将第一数量的通道输入到脉动阵列的一侧时将会有的相比,这导致脉动阵列中的第一卷积层推理和第二卷积层推理中更大的MAC PE利用率。

一个实施例是一种操作AI引擎的方法。输入图像的数据在第一数量的通道中具有像素高度和像素宽度。第一数量的通道等于每个像素的颜色数量。输入图像的数据被布置到第二更多数量的通道。该第二数量的通道中的每个通道具有较小的像素高度、较小的像素宽度和颜色中的一种的数据。第二数量的通道输入到脉动阵列的一侧。脉动阵列具有M×N个MAC PE,其中在一侧上具有N个MAC,用于输入多达N个通道的图像数据。第二数量的通道小于或等于N并且比第一数量的通道更接近N。与用于将第一数量的通道输入到脉动阵列的一侧时将会有的相比,第二数量的通道的使用导致脉动阵列中的第一卷积层推理和第二卷积层推理中更大的MAC PE利用率。一个实施例是在其上具有指令的有形的非暂时性计算机可读介质。指令使处理器执行如下描述的方法。

输入图像的数据在第一数量的通道中具有像素高度和像素宽度。第一数量的通道等于每个像素的颜色数量。输入图像的数据被布置到第二更多数量的通道。该第二数量的通道中的每个通道具有较小的像素高度、较小的像素宽度和颜色中的一种的数据。第二数量的通道输入到脉动阵列的一侧。脉动阵列具有M×N个MAC PE,其中在一侧上具有N个MAC,用于输入多达N个通道的图像数据。第二数量的通道小于或等于N并且比第一数量的通道更接近N。与用于将第一数量的通道输入到脉动阵列的一侧将会有的相比,第二数量的通道的使用导致在脉动阵列的第一卷积层推理和第二卷积层推理中更大的MAC PE利用率。通过以下结合附图的详细描述,实施例的其他方面和优点将变得显而易见,附图以示例的方式示出描述的实施例的原理。

图1是根据本公开的实施例的具有N×N个MAC PE的脉动阵列104的AI(人工智能)引擎100的框图,其示出数据格式转换器114的两个示例位置。AI引擎100具有神经网络核心102,神经网络核心102包括脉动阵列104、在脉动阵列104的输出处的累加器、从累加器106接收输出的缩放模块108、从缩放模块108接收输出的激活模块110、以及从激活模块110接收输出的池化模块112。

AI引擎100中的其他组件包括DMA(direct memory access,直接存储器访问)模块120、DSP(digital signal processor,数字信号处理器)或RISC(reduced instructionset computer,精简指令集计算机)118、SRAM(static random access memory,静态随机访问存储器)124、另一个DMA模块126、耦接到相机130的ISP(image signal processor,图像信号处理器)128、连接到DDR(dual data rate,双倍数据率)存储器134的DDR控制器132、连接到主机138的PCIe(peripheral control interface express,高速外围控制接口)接口136,全部连接到总线140并且通过总线140进行通信,在该示例中为AXI(advancedextensible interface,高级可扩展接口)总线140。格式转换器114的实施例可以在DSP、RISC(即DSP或RISC 118)或耦接到神经网络核心102中的脉动阵列104的数据变换模块116中实现。此AI引擎100是适用于格式转换器114的示例,并且可以根据本文的教导容易设计出可以使用格式转换器114的AI引擎的其他实施例。

图2示出如格式转换器114数据所执行的将输入图像202的数据从3个通道210(红色、绿色、蓝色或RGB)重新布置到12个通道208用于改进脉动阵列中的MAC PE利用率的示例。首先,该示例中的图像202在3个通道210(即,RGB通道)中具有448的像素高度和448的像素宽度。图像202中的每个像素具有红色值、绿色值和蓝色值,并且这些颜色值中的每个值在对应通道210中输出。

数据格式转换器114将图像布置为像素组204。在该示例中,每个像素组204是4×4像素组,即,像素高度为4且像素宽度为4的组204,其中每个像素具有3个颜色值。然后,数据格式转换器114将每个像素组204的数据布置为每个子组具有2×2像素组的4个子组206。即,4个子组206中的每个子组具有像素高度为2以及像素宽度为2,其中每个像素具有3个颜色值。在一个实施例中,子组206包括在子组中相邻但在图像202中不相邻的像素。例如,最上面的子组206具有相邻的像素1和3,但是像素1和3在像素组204和图像202中不相邻。

接下来,数据格式转换器114将每个子组206的数据布置到用于每种颜色(红色、绿色、蓝色)的单独通道中,并作为对应通道输出这些数据。在此示例中,这导致4个子组乘以每个三种颜色,总共12个通道208。

在各种实施例中,重新布置输入图像的数据的该示例被推广到各种图像大小和各种数量的通道。目的是增加到脉动阵列的输入的通道数量,为了脉动阵列的第一层和第二层中更大的MAC PE利用率。在各种实施例中,可以以串行操作和并行操作的各种组合,以硬件、在一个或多个处理器上执行的软件、固件或其组合来实现将图像数据重新布置到更多数量的通道中的动作。

图3描绘将输入图像202的数据从3个通道210重新布置到12个通道208的示例中的更多细节。在图3中,将4×4像素组204(参见图2)布置为3个4×4像素颜色组302、304、306,每个像素颜色组用于每种颜色(红色、绿色、蓝色)。4×4像素组204中的每个像素的对应颜色值表示在对应的4×4像素颜色组中。4×4像素组204的像素的红色值在红色4×4像素颜色组302中,4×4像素组204的像素的绿色值在绿色4×4像素颜色组304中,以及4×4像素组204的像素的蓝色值在蓝色4×4像素颜色组306中。

每个4×4像素颜色组302、304、306被布置为4个2×2像素颜色子组。红色4×4像素颜色组302被布置为4个2×2像素红色子组308、310、312、314。绿色4×4像素颜色组304被布置为4个2×2像素绿色子组316、318、320、322。蓝色4×4像素颜色组306被布置为4个2×2像素蓝色子组324、326、328、330。对于三种颜色中的每种,4个2×2像素颜色子组中的每个像素颜色子组作为对应通道输出到脉动阵列104(参见图1),总共12个通道。

这在图3的右半部分进一步描述为扩展到12个通道的RGB三通道数据332。在3个通道R、G、B中示出RGB三通道数据332。以组示出数据格式转换器114的12个输出通道。3个颜色通道R0、G0、B0的第0组334来自2×2像素颜色子组314、322、330的第0行。3个颜色通道R1、G1、B1的第1组336来自2×2像素颜色子组312、320、328的第1行。3个颜色通道R2、G2、B2的第2组338来自2×2像素颜色子组310、318、326的第2行。3个颜色通道R3、G3、B3的第3组340来自2×2像素颜色子组308、316、324的第3行或底端行。

图4描绘在实施例中将数据整形到AI引擎404中的数据转换器402。AI引擎404具有多个卷积层406、408、410、412。每个卷积层406、408、410、412具有卷积模块、批标准化模块和Relu(整流线性单元)。第一卷积层406接收数据转换器402的输出。第二卷积层408将第一卷积层406的输出接收到数据转换器414中。第三卷积层410接收第二卷积层408的输出。第四卷积层412接收第三卷积层410的输出。

在馈入到AI引擎404之前,输入图像被数据转换器402例如使用CPU(中央处理单元)或GPU(图形处理单元)整形。数据转换器414在第二卷积层408的输入处对第一卷积层406的输出进行整形。用这两个数据转换器402、414,对第一对层进行了整形以增加通道数量,因为否则这些通道将比接收通道的MAC PE的数量少得多。

在一个实施例中,在第二卷积层408的输入处的数据转换器414不同于馈入到AI引擎404的数据转换器402,因为数据转换器414还可以包括从一种格式整形为另一种格式的NCHW->NHCW。对于这些数据格式,N是批数、C是通道数量(也称为特征MAPS)、H是高度、以及W是宽度。

图5描绘对于各种数量的通道,比较脉动阵列中的MAC PE利用率的实验结果。实验的配置具有64×64的阵列大小,即脉动阵列104(参见图1)具有M=N=64。存在大小为2048的SRAM IFMAP(static random access memory input feature map,静态随机存取存储器输入特征图)、大小为2048的SRAM滤波器、大小为2048的SRAM OFMAP(static randomaccess memory output feature map,静态随机存取存储器输出特征图)、YOLO微模型(在移动设备和ADAS中经常用于对象检测的对象检测深度学习模型)、以及权重固定的数据流。权重固定意味着模型权重首先被加载到脉动阵列中,并保持在那里直到所有特征图被彻底通过并乘以固定权重,然后计算出结果。

发现使用3个通道502的416×416的输入大小具有10.55%的MAC利用率。发现使用48个通道504的输入大小208×208具有24.11%的MAC利用率,这是3个通道输入的MAC利用率的两倍以上。发现使用192个通道506的104×104的输入大小只有25.00%的稍微更高的MAC利用率。

对实验结果的分析表明,应通过重新布置图像数据增加通道数量,使得通道数量接近PE阵列的通道接收侧的PE的数量。在该实验中,48个通道504在数量上比3个通道502更接近64个PE,并且实现了更高的MAC利用率。对实验结果的分析还表明,大于PE阵列的通道接收侧的PE的数量的通道数量不会明显提高MAC利用率。在此实验中,192个通道506与48个通道504相比没有明显提高MAC利用率。

图6示出在数据格式转换器600的实施例中将输入图像602的数据从3个通道618(红色、绿色、蓝色)重新布置到48个通道612的示例。将输入图像602的数据作为3个通道618(每个通道各自用于RGB或红色、绿色、蓝色)输入到数据格式转换器600。数据格式转换器600将数据按8像素×8像素组(即8×8像素组)604进行布置。数据格式转换器600将每个8×8像素组604布置为用于红色、绿色、蓝色的每个的16个2像素×2像素组(即2×2像素组)。将这些48个2×2像素颜色组作为48个通道612输出到64×64MAC PE脉动阵列614。具体地,在该示例中,由8×8像素组604中的每个像素组形成的16个红色2×2像素颜色组606、16个绿色2×2像素颜色组608和16个蓝色2×2像素颜色组610作为48个通道612输出。

应当理解的是,根据本文的教导容易设计出其他的图像大小,像素组、像素组内的子组或组、颜色组或子组的布置,以及来自输入图像的数据和来自数据格式转换器的通道用于其他实施例。在各种实施例中,可以以串行操作、并行操作或其组合来重新布置图像数据。

图7是在实施例中操作AI引擎的方法的流程图。方法及其变型可以由一个或多个处理器执行,并且更具体地可以由具有如本文在各种实施例中描述的数据格式转换器的AI引擎执行。方法及其变型可以体现在有形的非暂时性的计算机可读介质上的指令中,用于由处理器执行。

在动作702中,数据格式转换器按像素组布置输入图像的数据。在图2、图3和图6中示出像素组的示例,并且根据本文的教导容易设计出其他的组的大小和组的布置。

在动作704中,数据格式转换器将每个像素组布置为每种颜色的更小的像素子组。在图3和图6中示出红色、绿色和蓝色的像素子组的示例,并且可以根据本文的教导容易设计出其他的组和子组的大小、颜色数量以及子组的布置。

在动作706中,数据格式转换器将数据通道输出到脉动阵列。对于每个像素组,每个通道用于一种颜色的像素子组。在图2、图3和图6中示出数据通道的输出示例。根据本文的教导可以容易设计出其他的数据通道、以及像素组、像素子组、像素颜色子组和对应通道的布置。

参考图1-图7,数据格式转换器的各种实施例根据硬件设计中的MAC阵列配置来对输入图像进行整形。一个或多个数据格式转换器将进入MAC阵列的第一对层的数据整形到小于或等于在该层接收通道的PE数量的通道数量,其中数据变换被设计以最大化MAC阵列的硬件利用率。本文描述的方法的实施例可以应用于当前的AI引擎或新开发的引擎。整形可以在其他计算资源(如CPU或GPU)中完成,也可以在AI引擎中进行数据变换。整形使得由数据格式转换器生成的用于输入到脉动阵列的一侧的通道数量更接近、但小于或等于脉动阵列的输入侧的MAC PE数量,与将更少数量的通道输入到脉动阵列的一侧将会有的相比,导致在脉动阵列中的第一卷积层推理和第二卷积层推理中更大的MAC PE利用率。

为了解释说明的目的,已经参考特定实施例描述了前述描述。然而,以上说明性讨论并非意图穷举或将本发明限制为所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释实施例的原理及其实际应用,从而使本领域的其他技术人员在可能适合于预期的特定用途时能够最好地利用实施例和各种修改。因此,本实施例应被认为是说明性的而不是限制性的,并且本发明不限于本文给出的细节,而是可以在所附权利要求的范围和等同范围内进行修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号