用于神经网络代码生成的方法和设备技术

技术编号:29955551 阅读:26 留言:0更新日期:2021-09-08 08:54
公开了一种用于神经网络代码生成的方法和设备。该方法包括:接收关于被配置为执行神经网络的神经网络操作的硬件的信息,使用处理器基于所述信息和神经网络的结构生成将神经网络操作映射到可用于执行神经网络操作的处理元件上的目标映射模型,以及生成用于配置硬件以基于目标映射模型执行神经网络操作的代码。码。码。

【技术实现步骤摘要】
用于神经网络代码生成的方法和设备
[0001]本申请要求于2020年3月5日在美国专利商标局提交的第62/985,470号美国临时申请的权益,并且要求于2020年10月22日在韩国知识产权局提交的第10

2020

0137442号韩国专利申请的权益,该申请的全部公开内容出于所有目的通过引用包含于此。


[0002]以下描述涉及一种用于生成用于神经网络操作的代码的方法和设备。

技术介绍

[0003]在深度神经网络操作中,需要输入数据、权重数据和输出数据。每个数据可以具有四个维度(即,宽度(或水平长度)、高度(或垂直长度)、通道(或深度)和数量)。
[0004]重新加载的次数和装置的性能可以基于用于确定哪些维度数据将被划分并加载成什么大小的平铺(tiling)方法以及确定用于加载平铺的数据的顺序的数据流而变化。

技术实现思路

[0005]提供本
技术实现思路
是为了以简化的形式介绍一些构思,这些构思在下面的具体实施方式中进一步描述。本
技术实现思路
不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0006]在一个总体方面,提供了一种处理器实现的生成代码的方法,所述方法包括:接收关于被配置为执行神经网络的神经网络操作的硬件的信息;使用处理器基于所述信息和神经网络的结构,生成将神经网络操作映射到可用于执行神经网络操作的处理元件上的目标映射模型;以及基于目标映射模型来生成用于配置硬件以执行神经网络操作的代码。<br/>[0007]接收所述信息的步骤可以包括:接收处理元件的数量、处理元件的结构、存储器带宽、频率和存储器大小中的任何一个或任何组合。
[0008]生成目标映射模型的步骤可以包括:基于所述信息和所述结构来计算与任意映射模型对应的映射参数;以及基于映射参数来确定目标映射模型。
[0009]计算映射参数的步骤可以包括:基于神经网络的划分结构来计算将通过任意映射模型获得的操作性能;基于包括在神经网络操作中的循环结构来计算任意映射模型的存储器访问大小;以及基于操作性能和存储器访问大小来计算映射参数。
[0010]计算操作性能的步骤可以包括:基于神经网络的划分结构来计算处理元件的利用率;以及基于所述利用率来计算操作性能。
[0011]计算存储器访问大小的步骤可以包括:基于循环结构来计算任意映射模型的数据重新加载的次数;以及基于所述数据重新加载的次数和划分结构来计算存储器访问大小。
[0012]基于映射参数来确定目标映射模型的步骤可以包括:将使映射参数最大化的任意映射模型确定为目标映射模型。
[0013]生成目标映射模型的步骤还可以包括:基于神经网络的划分结构和包括在神经网络操作中的循环结构来对不适当的映射模型进行剪枝。
[0014]对不适当的映射模型进行剪枝的步骤可以包括:根据处理元件的利用率,基于神经网络的划分结构来对不适当的映射模型进行剪枝。
[0015]对不适当的映射模型进行剪枝的步骤可以包括:基于循环结构的迭代次数来对不适当的映射模型进行剪枝。
[0016]在另一总体方面,提供了一种用于生成用于神经网络操作的代码的设备,所述设备包括:接收器,被配置为接收关于被配置为执行神经网络操作的硬件的信息;以及处理器,被配置为基于所述信息和神经网络的结构来生成将神经网络操作映射到可用于执行神经网络操作的处理元件上的目标映射模型,并且基于目标映射模型来生成用于配置硬件以执行神经网络操作的代码。
[0017]接收器可以被配置为接收处理元件的数量、处理元件的结构、存储器带宽、频率和存储器大小中的任何一个或任何组合。
[0018]处理器可以被配置为:基于所述信息和所述结构来计算与任意映射模型对应的映射参数;以及基于映射参数来确定目标映射模型。
[0019]处理器可以被配置为:基于神经网络的划分结构来计算将通过任意映射模型获得的操作性能;基于包括在神经网络操作中的循环结构来计算任意映射模型的存储器访问大小;以及基于操作性能和存储器访问大小来计算映射参数。
[0020]处理器可以被配置为:基于神经网络的划分结构来计算处理元件的利用率;以及基于所述利用率来计算操作性能。
[0021]处理器可以被配置为:基于循环结构来计算任意映射模型的数据重新加载的次数;以及基于数据重新加载的次数和划分结构来计算存储器访问大小。
[0022]处理器可以被配置为:将使映射参数最大化的任意映射模型确定为目标映射模型。
[0023]处理器可以被配置为:基于神经网络的划分结构和包括在神经网络操作中的循环结构来对不适当的映射模型进行剪枝。
[0024]处理器可以被配置为:根据处理元件的利用率,基于神经网络的划分结构来对不适当的映射模型进行剪枝。
[0025]处理器可以被配置为:基于循环结构的迭代次数来对不适当的映射模型进行剪枝。
[0026]通过下面的具体实施方式、附图和权利要求,其他的特征和方面将是清楚的。
附图说明
[0027]图1是示出了代码生成设备的示例的图。
[0028]图2示出了布置用于神经网络操作的处理元件的示例。
[0029]图3示出了图1的代码生成设备的操作的示例。
[0030]图4示出了关于硬件的信息的示例。
[0031]图5示出了由图1的代码生成设备执行的操作的示例。
[0032]图6A示出了用于执行图5的操作的代码的示例。
[0033]图6B示出了用于执行图5的操作的代码的另一示例。
[0034]图7示出了图1的代码生成设备的可获得的操作性能的示例。
[0035]图8示出了片外环路的配置的示例。
[0036]图9示出了用于剪枝的平铺因子的初始化的示例。
[0037]图10示出了用于剪枝的循环消除的示例。
[0038]图11示出了用于剪枝的循环交换的示例。
[0039]图12示出了由图1的代码生成设备生成的代码的示例。
[0040]图13是示出了图1的代码生成设备的操作的示例的图。
[0041]在整个附图和具体实施方式中,除非另有描述或提供,否则相同的附图标记将被理解为指代相同的元件、特征和结构。附图可能未按比例绘制,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可能被夸大。
具体实施方式
[0042]提供以下具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开内容之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是明显的。例如,除了必须以特定顺序发生的操作之外,在此描述的操作的顺序仅仅是示例,并且不限于在此阐述的那些操作的顺序,而是可以在理解本申请的公开内容之后进行将是明显的改变。此外,为了更清楚和简明,可以省略本领域已知的特征的描述。
[0043]在此描述的特征可以以不同的形式实施,并且将不被解释为限于在此本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器实现的生成代码的方法,所述方法包括:接收关于被配置为执行神经网络的神经网络操作的硬件的信息;使用处理器基于所述信息和神经网络的结构,生成将神经网络操作映射到可用于执行神经网络操作的处理元件上的目标映射模型;以及基于目标映射模型来生成用于配置硬件以执行神经网络操作的代码。2.根据权利要求1所述的方法,其中,接收所述信息的步骤包括:接收处理元件的数量、关于处理元件的结构的信息、存储器带宽、频率和存储器大小中的任何一个或任何组合。3.根据权利要求1所述的方法,其中,生成目标映射模型的步骤包括:基于所述信息和神经网络的结构来计算与任意映射模型对应的映射参数;以及基于映射参数来确定目标映射模型。4.根据权利要求3所述的方法,其中,计算映射参数的步骤包括:基于神经网络的划分结构来确认任意映射模型的操作性能;基于包括在神经网络操作中的循环结构来计算任意映射模型的存储器访问大小;以及基于操作性能和存储器访问大小来计算映射参数。5.根据权利要求4所述的方法,其中,计算操作性能的步骤包括:基于神经网络的划分结构来计算处理元件的利用率;以及基于所述利用率来计算操作性能。6.根据权利要求4所述的方法,其中,计算存储器访问大小的步骤包括:基于循环结构来计算任意映射模型的数据重新加载的次数;以及基于数据重新加载的次数和划分结构来计算存储器访问大小。7.根据权利要求3至权利要求6中的任意一项所述的方法,其中,基于映射参数来确定目标映射模型的步骤包括:将使映射参数最大化的任意映射模型确定为目标映射模型。8.根据权利要求3至权利要求6中的任意一项所述的方法,其中,生成目标映射模型的步骤还包括:基于神经网络的划分结构和包括在神经网络操作中的循环结构来对不适当的映射模型进行剪枝。9.根据权利要求8所述的方法,其中,对不适当的映射模型进行剪枝的步骤包括:根据处理元件的利用率,基于神经网络的划分结构来对不适当的映射模型进行剪枝。10.根据权利要求8所述的方法,其中,对不适当的映射模型进行剪枝的步骤包括:基于循环结构的迭代次数来对不适当...

【专利技术属性】
技术研发人员:李强熊金玟洙闵慧美
申请(专利权)人:首尔大学校产学协力团
类型:发明
国别省市:

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

1