用于管理卷积计算的方法和对应设备技术

技术编号:32900910 阅读:45 留言:0更新日期:2022-04-07 11:51
本公开涉及用于管理卷积计算的方法和对应设备。在一个实施例中,一种用于管理由计算单元执行的卷积计算的方法,该计算单元被适配为根据被应用于至少一个输入通道上的输入数据块的卷积核来计算输出通道上的输出数据,其中对每个输入数据块的计算分别对应于输出通道上的输出数据,并且其中每个卷积核的计算分别对应于每个输出通道上的输出数据,该方法包括:标识在计算单元的临时工作存储器中可用的存储器位置的大小;在临时工作存储器中预加载能够在存储器的大小下被存储的最大数目的卷积核;以及控制计算单元计算输出数据的集合,该输出数据的集合能够根据预加载的卷积核来计算。计算。计算。

【技术实现步骤摘要】
用于管理卷积计算的方法和对应设备
[0001]相关申请的交叉引用
[0002]本申请要求于2020年10月1日提交的法国专利申请第2010063号的权益,该申请在此通过引用并入本文。


[0003]实现和实施例涉及操作卷积计算的人工神经网络,特别是卷积计算的管理。

技术介绍

[0004]可以提及例如通常应用于识别图像或视频中的对象或人的卷积神经网络或CNN,这称为2D卷积。
[0005]卷积神经网络通常包含连续地处理信息的四种层类型:卷积层,一个接一个地处理例如图像块;激活层,通常是非线性函数,可以提高卷积层的结果的相关性;池化层,可以减少层的维度;以及全连接层(或密集层),将一个层的所有神经元连接到前一层的所有神经元。
[0006]针对每一层,输入数据从前一层到达输入通道,并且输出数据在输出通道上被传送。输入和输出通道对应于例如随机存取存储器的存储器位置。输出通道的集合称为“特征图”。
[0007]卷积层通常对应于输入数据和卷积核权重数据的内积。权重数据是指与给定卷积核相关的卷积运算的参数。
[0008]简而言之,卷积(特别是2D卷积)的原理是利用被投影到输入数据块上的窗口扫描输入通道,并且计算每个输入数据块与卷积核的内积。每个输入数据块的内积对应于分别与每个卷积核相对应的输出通道上的输出数据。
[0009]应当注意,卷积核对应于输出通道,并且可以包括与输入通道的数目相等的多个分量,因此每个分量可以专用于一个输入通道。因此,这种卷积核的“绝对”大小(即核权重数据的数目)将是一个分量的大小(等于窗口的大小(例如,3*3像素))乘以输入通道的数目。权重通常被存储在非易失性存储器中。
[0010]卷积神经网络“CNN”广泛用于人工智能。卷积神经网络对计算的执行对存储权重的非易失性存储器容量、输入/输出数据的易失性存储器容量、以及导致高推理时间的计算周期的要求非常高(推理时间是人工智能领域的常用术语,表示执行神经网络已被配置或在自学习技术框架内被训练的任务所需要的时间)。
[0011]需要减少在卷积神经网络中执行的计算的推理时间。
[0012]现有解决方案的缺点通常是在减少推理时间和减少存储器占用方面没有提供有利折衷。
[0013]实际上,例如“TVM”类型的技术针对每一层生成特定代码以避免循环的执行,可以减少循环次数但对非易失性存储器的大小具有显著影响。此外,称为“权重平稳”或“特征平稳”的技术包括分配更多易失性存储器以加速计算。
[0014]然而,非易失性存储器和易失性存储器的大小与解决方案的最终成本直接相关。在具有有限(随机访问和非易失性)存储器和计算速度资源的廉价设备的上下文中,价格问题以及推理时间与存储器空间之间的折衷问题影响更大。

技术实现思路

[0015]实施例大大减少了对2D卷积的推理时间。另外的实施例提供了接近于每个卷积计算操作的循环次数的理论极限的干扰时间,而不增加易失性和非易失性存储器。
[0016]根据一个实施例,提供了一种用于管理卷积计算的方法,其中该方法由计算单元执行,该计算单元被适配为根据被应用于至少一个输入通道上的输入数据块的卷积核来计算输出通道上的输出数据,对每个输入数据块的计算分别对应于输出通道上的每个输出数据,并且每个卷积核的计算分别对应于每个输出通道上的输出数据。
[0017]根据一个实施例,该方法包括:
[0018]标识在计算单元的临时工作存储器中可用的存储器位置的大小;
[0019]在临时工作存储器中预加载能够在该大小下被存储的最大数目的卷积核;以及
[0020]控制计算单元计算输出数据的集合,该输出数据的集合能够根据预加载的卷积核来计算。
[0021]计算单元的临时工作存储器(通常称为“暂用存储器”)是其预期使用期限为临时的存储器位置,而且总是由任何类型的代码生成器或编译器提供。可用存储器位置的大小取决于每个应用,而并不总是可预测的。
[0022]根据该实施例的方法通过以下方式在个案的基础上提供临时工作存储器的最佳使用:根据标识出的可用大小在其中预加载最大卷积核,这减少了在计算中使用的卷积核的恢复和加载的过程的数目。
[0023]应当注意,该方法提供了对可用临时工作存储器的最佳使用,也就是说,该方法不提供预先固定的存储器分配。
[0024]此外,由计算单元执行的卷积计算是在预加载核之后被控制的,并且利用这些预加载的核针对由卷积产生的输出数据的集合来进行控制。换言之,每个预加载的卷积核在计算期间被充分利用,这再次减少了恢复和加载卷积核的过程的数目。
[0025]用于减少针对卷积核的恢复和加载而实现的过程的数目的这两种机制的组合的结果提供了可观的时间节省。第一结果,针对2D卷积层类型的神经网络拓扑进行模拟,与常规方法相比,专用于数据加载的总时间减少了98%,并且完整神经网络的全局推理时间的增益为30%至50%。当然,性能增益将取决于网络的拓扑和实现的条件。
[0026]最后,该方法是通用的并且可以应用于输入/输出数据和卷积核数据的任何组织,特别地优化了存储器使用,例如利用存储器的分段储存的组织。
[0027]根据一个实施例,用于计算输出数据的集合(可以根据预加载的卷积核来计算)的计算单元的控制包括:在计算单元中连续加载与集合的输出数据相对应的输入数据块。
[0028]换言之,该管理方法提供了扫描可以与预加载的核一起使用的所有输入数据块,以便根据加载的核来计算最大输出数据。
[0029]在一种实现中,该方法包括重复预加载步骤和控制步骤,直到计算出所有输出通道中的输出数据的集合。
[0030]事实上,如果所有卷积核都不能被加载在临时工作存储器中,则在计算出与预加载的核相对应的输出通道的最大输出数据之后,对其他卷积核重复该过程,以便计算与这些其他卷积核相对应的输出通道的最大输出数据。
[0031]因此,输入数据块被加载在处理单元中的次数比常规方法中的要多,但与常规方法相比,这种损失可以通过卷积核被恢复和加载的次数的增益来在很大程度上得到补偿。
[0032]根据一个实施例,可以被计算的输出数据的集合对应于每个输出通道中一次可以被接收的输出数据的最大大小,该集合能够包括每个输出通道的完整输出数据,或仅包括每个输出通道的输出数据的部分。
[0033]例如,每个输出通道的输出数据的部分对应于每个输出通道的一行或一组行。
[0034]实际上,用于在输入通道上恢复输出通道的技术可以优化存储输入和输出数据的存储器。在这种情况下,每个输出通道中一次能够被接收的输出数据的最大大小被限制为部分,例如,根据存储器恢复的组织,被限制为一行或一组行,以便不会通过用输出数据覆写输入数据来破坏输入数据。
[0035]根据一个实施例,如果该集合仅包括每个输出通道的输出数据的部分,则预加载步骤和控制步骤的重复包括:
[0036]a)针对同一部分,重复对与先前预加载步骤的卷积核不同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于管理由计算单元执行的卷积计算的方法,所述计算单元被适配为根据被应用于至少一个输入通道上的输入数据块的卷积核来计算输出通道上的输出数据,其中对每个输入数据块的计算分别对应于输出通道上的输出数据,并且其中每个卷积核的所述计算分别对应于每个输出通道上的所述输出数据,所述方法包括:标识在所述计算单元的临时工作存储器中可用的存储器位置的大小;在所述临时工作存储器中预加载能够在所述存储器的所述大小下被存储的最大数目的卷积核;以及控制所述计算单元计算输出数据的集合,所述输出数据的集合能够根据预加载的卷积核来计算。2.根据权利要求1所述的方法,其中控制所述计算单元计算所述输出数据的集合包括:在所述计算单元中依次加载与所述输出数据的集合相对应的所述输入数据块。3.根据权利要求1所述的方法,还包括在所述临时工作存储器中重复地预加载所述最大数目的卷积核并且重复地控制所述计算单元计算所述输出数据的集合,直到计算出所有输出通道中的所述输出数据的集合。4.根据权利要求1所述的方法,其中所述输出数据的集合对应于在每个输出通道中一次能够被接收的所述输出数据的最大大小,并且其中所述集合包括每个输出通道的完整输出数据或仅包括每个输出通道的所述输出数据的部分。5.根据权利要求4所述的方法,其中每个输出通道的所述输出数据的所述部分对应于输出数据的一行或一组行。6.根据权利要求4所述的方法,其中,当所述集合仅包括每个输出通道的所述输出数据的所述部分时,重复地预加载和控制包括:针对同一所述部分,重复地预加载与先前预加载的卷积核不同的卷积核并且重复地控制,直到针对所有输出通道计算出所述部分的所有所述输出数据;以及针对其他部分,重新开始预加载,直到计算出所有所述输出通道的所有其他部分中的所有所述输出数据。7.根据权利要求1所述的方法,还包括:当所述临时工作存储器中可用的所述存储器位置的所述大小小于最小大小阈值时,分配所述计算单元中大小为所述最小大小阈值的缓冲存储器的存储器位置,其中预加载所述最大数目的卷积核包括:预加载能够在所述最小大小阈值下被存储的最大数目的卷积核。8.根据权利要求1所述的方法,其中所述卷积核包括权重数据,并且其中预加载包括重新组织所述卷积核的所述权重数据以优化所述输出数据的所述计算。9.根据权利要求1所述的方法,其中所述卷积核包括权重数据,并且其中控制所述计算单元计算所述输出数据的集合包括:将加载的所述输入数据块与预加载的所述卷积核的所述权重数据进行相乘和累加。10.根据权利要求1所述的方法,还包括:在将所述卷积核预加载在所述临时工作存储器中之前,将所述卷积核存储在所述计算单元内部或外部的非易失性存储器中,并且在所述计算单元的控制的同时,将所述输入数据和所述输出数据存储在所述计算单元内部或外部的所述易失性存储器中。11.一种非暂态计算机可读存储介质,包括...

【专利技术属性】
技术研发人员:L
申请(专利权)人:意法半导体鲁塞公司
类型:发明
国别省市:

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

1