【技术实现步骤摘要】
数据加载电路和方法
[0001]本公开涉及数据加载,特别涉及用于神经网络计算的数据加载。
技术介绍
[0002]神经网络是人工智能技术的核心。目前,神经网络得到了广泛的研究和关注,应用于包括计算机视觉、语音识别、机器人、自动驾驶等诸多人工智能应用领域中。
[0003]在实际应用中,神经网络的层级数量往往非常大,甚至多达上千层,因而输入数据和中间数据的数据量也十分庞大。通常,用于神经网络计算的特征图中的数据存储在计算电路外的存储器中,因此,在计算电路进行计算之前或计算电路进行计算的过程中,需要将特征图中的数据加载到计算电路中。由于需要加载的数据量较大,而从存储器中读取数据的速度有限,神经网络的数据加载问题构成了其速度与能效的瓶颈。
[0004]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
技术实现思路
[0005]根据本 ...
【技术保护点】
【技术特征摘要】
1.一种数据加载电路,所述电路被配置为将用于神经网络所计算的特征图中的数据加载到计算电路中,其中,所述神经网络的卷积核大小为K*K个数据,对应于所述卷积核的窗口以步长S在所述特征图中滑动,K和S均为正整数,S<K,所述电路包括:两个数据加载器,包括第一数据加载器和第二数据加载器;以及控制器,所述控制器被配置为:当所述窗口在所述特征图中的连续K行内滑动时,控制所述第一数据加载器处于数据输出模式,控制所述第二数据加载器处于数据读取模式,其中,处于所述数据输出模式的所述第一数据加载器被配置为向所述计算电路输出所述窗口所对应的矩阵中的数据,并且向处于所述数据读取模式的所述第二数据加载器输出所述窗口所对应的矩阵的后(K-S)列中的数据,所述处于数据读取模式的所述第二数据加载器被配置为接收来自所述处于数据输出模式的所述第一数据加载器的数据,并且从存储器中读取该连续K行中位于所述窗口所对应的矩阵之后的S列中的数据。2.如权利要求1所述的电路,所述控制器还被配置为:在所述处于数据读取模式的所述第二数据加载器完成从所述处于数据输出模式的所述第一数据加载器接收数据和从所述存储器读取数据的过程之后,判断所述特征图的最后一列的列地址与所述窗口所对应的矩阵的最后一列的列地址之差是否大于或等于2S,其中,如果所述特征图的最后一列的列地址与所述窗口所对应的矩阵的最后一列的列地址之差大于或等于2S,则清空所述处于数据输出模式的所述第一数据加载器中所存储的数据,控制所述处于数据输出模式的所述第一数据加载器切换到处于所述数据读取模式,控制所述处于数据读取模式的所述第二数据加载器切换到处于所述数据输出模式。3.如权利要求2所述的电路,所述控制器还被配置为:如果所述特征图的最后一列的列地址与所述窗口所对应的矩阵的最后一列的列地址之差小于2S,判断所述特征图的最后一行的行地址与所述窗口所对应的矩阵的最后一行的地址之差是否大于或等于S,如果是,则清空所述处于数据输出模式的所述第一数据加载器中所存储的数据,控制所述处于数据输出模式的所述第一数据加载器切换到处于数据预读取模式,控制所述处于数据读取模式的所述第二数据加载器切换到处于行尾输出模式,其中,处于所述数据预读取模式的所述第一数据加载器从所述存储器读取该连续K行中的后(K-S)行以及所述特征图中位于该连续K行之后的S行中的前K列,处于所述行尾输出模式的所述第二数据加载器向所述计算电路输出其中所存储的数据。4.如权利要求3所述的电路,所述控制器还被配置为:在处于所述数据预读取模式的所述第一数据加载器完成从所述存储器读取数据的过程并且处于所述行尾输出模式的所述第二数据加载器完成向所述计算电路输出其中所存储的数据的过程之后,清空所述处于行尾输出模式的所述第二数据加载器中所存储的数据;重新选中该连续K行中的后(K-S)行以及所述特征图中位于该连续K行之后的S行,其中,所述窗口开始在重新选中的连续K行内滑动;控制所述处于数据预读取模式的所述第一数据加载器切换到处于所述数据输出模式,控制所述处于行尾输出模式的所述第二数据加载器切换到处于所述数据读取模式。5.如权利要求1-4中任一项所述的电路,其中,所述两个数据加载器中的...
【专利技术属性】
技术研发人员:孙旭光,邢小地,王绍迪,
申请(专利权)人:杭州知存智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。