用于提高卷积效率的方法、系统和装置制造方法及图纸

技术编号:24105688 阅读:31 留言:0更新日期:2020-05-09 16:52
公开了用于提高卷积神经网络(CNN)加速器的卷积效率的方法、装置、系统和制品。示例装置包括:数据处理元件(DPE)库存引擎,其用于识别被包括在DPE阵列中的平台可用的DPE;模式选择器,其用于确定DPE中的所识别的DPE的卷积布置;DPE配置优化器,其用于基于DPE中的所识别的DPE来确定DPE利用率;以及卷积引擎,其用于当DPE利用率满足DPE利用率门限时,使用所识别的DPE来促进卷积运算。

Methods, systems and devices for improving convolution efficiency

【技术实现步骤摘要】
【国外来华专利技术】用于提高卷积效率的方法、系统和装置相关申请该专利始自要求享有于2017年5月19日提交的序列号为62/508,896的美国临时专利申请的利益的申请。序列号为62/508,896的美国临时专利申请特此通过引用方式全部并入本文。特此要求享有序列号为62/508,896的美国临时专利申请的优先权。
概括而言,本公开涉及图像处理,并且更具体而言,涉及用于提高卷积效率的方法、系统和装置。
技术介绍
近年来,对图像处理能力的需求已经超出大功率专用桌上型硬件的范围,并且已经成为个人和/或其它移动设备的期望。移动设备通常包括受尺寸约束、温度管理约束和/或电源约束所限制的处理能力。附图说明图1示出了使用卷积的示例输入体积和示例输出体积的示例卷积运算。图2示出了基于“每个输出位置”的示例多通道卷积运算。图3示出了示例池化操作的示意图。图4示出了示例全连接操作的示意图。图5示出了示例卷积神经网络(CNN)加速器的框图。图6示出了示例数据路径元件(DPE)。图7是示例系数存储库的图示。图8是描述用于示例系数存储的示例寻址模型的示例表。图9是描述基于非FP16格式的示例系数存储库的示例寻址模型的示例表。图10示出了用于实现本文公开的示例的示例卷积运算。图11示出了基于示例1*256卷积布置的示例连接复用器的示例操作。图12示出了基于示例2*128卷积布置的示例连接复用器的示例操作。图13是用于实现图5的示例CNN加速器的另一示例CNN加速器的示例实施方式的框图。图14是表示可以被执行以实现图5的CNN加速器和/或图13的CNN加速器来处理与输入图像相关联的图像数据的示例机器可读指令的流程图。图15是表示可以被执行以实现图5的CNN加速器和/或图13的CNN加速器来执行具有可选池化的卷积运算的示例机器可读指令的流程图。图16是表示可以被执行以实现图5的CNN加速器和/或图13的CNN加速器来执行重叠池化操作的示例机器可读指令的流程图。图17是表示可以被执行以实现图5的CNN加速器和/或图13的CNN加速器来执行全连接操作的示例机器可读指令的流程图。图18是表示可以被执行以实现图5的CNN加速器和/或图13的CNN加速器来配置示例累加器的示例机器可读指令的流程图。图19是示例处理器平台的框图,所述示例处理器平台被构造为执行图14-18的示例机器可读指令来实现图13的示例CNN加速器。附图未按比例绘制。通常,在整个附图和所附的书面描述中将使用相同的附图标记来指代相同或相似的部分。具体实施方式包括个人和/或其他移动设备的典型计算系统采用高级图像处理或计算机视觉算法来使人类视觉系统可以执行的任务自动化。计算机视觉任务包括获取、处理、分析和理解数字图像,这部分地促进从数字图像中提取维度数据以产生数字和/或符号信息。计算机视觉算法可以使用数字和/或符号信息来进行决策和/或以其他方式执行与三维(3-D)姿态估计、事件检测、对象识别、视频跟踪等相关联的操作。先进的图像处理或计算机视觉算法可以采用卷积神经网络(CNN或ConvNet)。CNN是一种深层的人工神经网络,其通常用于对图像进行分类、通过相似度(例如,照片搜索)对图像进行聚类以及使用卷积在图像内执行对象识别。如本文中所使用的,卷积是指通过积分从两个给定的函数导出的函数,所述积分表达如何通过另一函数的形状来修改一个函数的形状。例如,CNN可以用于通过穿过与输入图像上的图像特征(例如,水平线、二维(2-D)形状等)相对应的一个或多个滤波器来识别被包括在输入图像中的面部、个人、路牌、动物等,以识别输入图像内图像特征的匹配。在一些示例中,CNN摄取(ingest)和/或以其他方式将图像处理为张量,所述张量是具有附加维度的数字矩阵。例如,CNN可以获得由3-D张量表示的输入图像,其中,第一和第二维度对应于矩阵的宽度和高度,并且第三维度对应于矩阵的深度。例如,矩阵的宽度和高度可以对应于输入图像的宽度和高度,并且矩阵的深度可以对应于图像的颜色深度(例如,颜色层)或颜色编码(例如,红-绿-蓝(RGB)编码)。与神经网络相比,CNN可以很好地缩放到完整图像。例如,典型的神经网络接收输入(例如,单个矢量)并且通过一系列隐藏层转换输入,其中,每个隐藏层包括一组神经元,其中,每个神经元都全连接到先前层中的所有神经元,并且其中,单个层中的神经元完全独立地起作用并且不共享任何连接。在这样的示例中,典型的神经网络可以将200x200x3(例如,200像素x200像素x3色深)的图像转换为120,000权重,其中,每个权重可以具有多于一个神经元。例如,图像可以具有与每个色深相对应的三个输入通道,其中,每个输入通道的尺寸为200像素x200像素。典型的CNN也可以接收输入并通过一系列隐藏层来转换输入。例如,CNN可以具有多个卷积层、池化层和/或全连接层。在这样的示例中,CNN可以具有多个三层结构(layertriplet),其包括卷积层、池化层和全连接层。在一些示例中,CNN具有输出到一个或多个全连接层的多个卷积和池化层对。在一些示例中,CNN可以包括20层、30层等。卷积层应用卷积函数或运算来将输入(先前)层的图像映射到CNN中的下一层。卷积是3-D的,因为每个输入层可以具有与输入图像相关联的多个输入特征(例如,输入通道)。卷积层通过在每个个体的输入通道中形成区域滤波器窗口并通过计算(1)与区域滤波器窗口相关联的滤波器权重与(2)由区域滤波器窗口覆盖的输入数据的乘积来生成输出数据或激活来执行卷积。例如,可以通过使用卷积滤波器来扫描包括多个区域滤波器窗口的多个输入通道来确定输入图像的输出特征。池化层从每个输出通道中的一组激活中提取信息。池化层可以执行与最大池化层相对应的最大池化操作或与平均池化层相对应的平均池化操作。最大池化操作包括在池化窗口内选择激活的最大值。平均池化操作包括计算池化窗口内的激活的平均值。全连接层获得由卷积层和/或池化层计算的数据,并且将数据分类到一个或多个类别中。全连接层确定分类的数据是否对应于输入图像的特定图像特征。例如,全连接层可以确定分类的数据是对应于简单的图像特征(例如,水平线)还是更复杂的图像特征,例如动物(例如,猫)。在一些实例中,CNN执行后处理操作,例如在卷积层、池化层等之后发起的参数化整流线性单元(PReLU)操作或整流线性单元(ReLU)操作。PReLU操作和ReLU操作对应于应用于CNN神经元的输出的激活函数。例如,在CNN从卷积层、池化层等生成输出之后,PReLU操作或ReLU操作可以包括在激活上应用逐元素激活函数。例如,PReLU操作可以包括当输出小于PReLU基本参数时,将激活乘以第一PReLU参数和/或以其他方式通过第一PReLU参数来缩放激活。在其他实例中,PReLU操作可以包括当激活大于PReLU基本参数时,将激活乘以第二PReLU参数本文档来自技高网...

【技术保护点】
1.一种用于提高卷积效率的装置,所述装置包括:/n数据处理元件(DPE)库存引擎,其用于识别被包括在DPE阵列中的平台可用的DPE;/n模式选择器,其用于确定所述DPE中的所识别的DPE的卷积布置;/nDPE配置优化器,其用于基于所述DPE中的所识别的DPE来确定DPE利用率;以及/n卷积引擎,其用于当所述DPE利用率满足DPE利用率门限时,使用所述DPE中的所识别的DPE来促进卷积运算。/n

【技术特征摘要】
【国外来华专利技术】20170519 US 62/508,8961.一种用于提高卷积效率的装置,所述装置包括:
数据处理元件(DPE)库存引擎,其用于识别被包括在DPE阵列中的平台可用的DPE;
模式选择器,其用于确定所述DPE中的所识别的DPE的卷积布置;
DPE配置优化器,其用于基于所述DPE中的所识别的DPE来确定DPE利用率;以及
卷积引擎,其用于当所述DPE利用率满足DPE利用率门限时,使用所述DPE中的所识别的DPE来促进卷积运算。


2.根据权利要求1所述的装置,其中,所述卷积引擎用于:
将(a)输入通道的输入位置的激活值与(b)对应于所述输入位置的滤波器系数相乘以生成卷积输出;以及
计算所述卷积输出的总和,以生成输出通道的输出位置。


3.根据权利要求2所述的装置,其中,所述输出位置是第一输出位置,并且所述卷积引擎用于:
计算包括包含所述第一输出位置在内的输出位置的池区域;以及
计算所述池区域的平均值或最大值中的至少一个。


4.根据权利要求3所述的装置,其中,所述卷积引擎用于对所述池区域的至少一个平均值或最大值执行偏置操作、缩放操作、参数整流器线性单元操作或整流器线性单元操作中的至少一个。


5.根据权利要求1所述的装置,其中,所述卷积布置是第一卷积布置,并且所述DPE利用率是第一DPE利用率,并且所述DPE配置优化器用于:
比较所述第一DPE利用率和所述DPE利用率门限;
当所述第一DPE利用率不满足所述DPE利用率门限时,阻止对所述卷积运算的所述促进;
将与第二卷积布置相关联的第二DPE利用率和所述DPE利用率门限进行比较;以及
所述卷积引擎用于基于所述比较,当所述第二DPE利用率满足所述DPE利用率门限时,使用所述第二卷积布置来促进所述卷积运算。


6.根据权利要求1所述的装置,其中,所述DPE阵列包括256个DPE。


7.根据权利要求1所述的装置,其中,所述卷积布置是1*256、2*128、4*64、8*32或16*16卷积布置中的至少一个。


8.根据权利要求1所述的装置,其中,所述卷积引擎使用所述DPE中的所识别的DPE来实质上并行地促进所述卷积运算。


9.根据权利要求1所述的装置,其中,所述卷积引擎通过调整累加器的整数比特数以修改所述累加器的范围或调整所述累加器的小数比特数以修改所述累加器的精度中的至少一个来促进所述卷积运算。


10.一种非暂时性计算机可读存储介质,其包括指令,所述指令当被执行时使机器至少执行:
识别被包括在数据处理元件(DPE)阵列中的平台可用的DPE;
确定所述DPE中的所识别的DPE的卷积布置;
基于所述DPE中的所识别的DPE来确定DPE利用率;以及
当所述DPE利用率满足DPE利用率门限时,使用所述DPE中的所识别的DPE来促进卷积运算。


11.根据权利要求10所述的非暂时性计算机可读存储介质,其还包括指令,所述指令当被执行时使所述机器至少执行:
将(a)输入通道的输入位置的激活值与(b)对应于所述输入位置的滤波器系数相乘以生成卷积输出;以及
计算所述卷积输出的总和,以生成输出通道的输出位置。


12.根据权利要求11所述的非暂时性计算机可读存储介质,其中,所述输出位置是第一输出位置,并且所述非暂时性计算机可读存储介质还包括指令,所述指令当被执行时使所述机器至少执行:
计算包括包含所述第一输出位置在内的输出位置的池区域;以及
计算所述池区域的平均值或最大值中的至少一个。


13.根据权利要求12所述的非暂时性计算机可读存储介质,还包括指令,所述指令当被执行时,使所述机器至少对所述池区域的至少一个平均值或最大值执行偏置操作、缩放操作、参数整流器线性单元操作或整流器线性单元操作中的至少一个。


14.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所述卷积布置是第一卷积布置,并且所述DPE利用率是第一DPE利用率,并且所述非暂时性计算机可读存储介质还包括指令,所述指令当被执行时使所述机器至少执行:
比较所述第一DPE利用率和所述DPE利用率门限;
当所述第一DPE利用率不满足所述DPE利用率门限时,阻止对所述卷积运算的所述促进;
将与第二卷积布置相关联的第二DPE利用率和所述DPE利用率门限进行比较;以及
基于所述比较,当所述第二DPE利用率满足所述DPE利用率门限时,使用所述第二卷积布置来促进所述卷积运算。


15.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所述DPE阵列包括256个DPE。


16.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所述卷积布置是1*256、2*128、4*64、8*32或16*16卷积布置中的至少一个。


17.根据权利要求10所述的非暂时性计算机可读存储介质,其中,所述DPE中的所识...

【专利技术属性】
技术研发人员:S·鲍尔D·莫洛尼B·巴里F·康纳
申请(专利权)人:莫维迪乌斯有限公司
类型:发明
国别省市:爱尔兰;IE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1