存储数据的装置和方法以及执行分组卷积运算的装置制造方法及图纸

技术编号:27464476 阅读:22 留言:0更新日期:2021-03-02 17:25
公开了存储数据的装置和方法以及用于执行分组卷积运算的装置。存储数据的装置可以包括:控制单元,被配置为确定至少两个张量中的指定张量在第一存储器中的第一地址;读取单元,被配置为根据第一地址从第一存储器中至少读取指定张量在指定通道上的至少一部分数据;寻址单元,被配置为根据由控制单元指示的指定通道在前述至少两个张量的所有通道的集合中的索引,确定前述至少一部分数据在第二存储器中的第二地址;以及写入单元,被配置为将前述至少一部分数据写入到第二存储器的第二地址处。通过根据本公开的实施例的装置和方法,能够高效率地实现混洗网络。够高效率地实现混洗网络。够高效率地实现混洗网络。

【技术实现步骤摘要】
存储数据的装置和方法以及执行分组卷积运算的装置


[0001]本公开总体上涉及人工智能的
,并且具体地涉及一种存储数据的装置和方法以及用于执行分组卷积运算的装置。

技术介绍

[0002]混洗网络(Shuffle Net)是一种用于计算能力受限且对功耗要求严格的终端(例如,移动终端)的高效的卷积神经网络模型,其在诸如分组卷积(Group Convolution)这样的稀疏连接的设计理念的基础上,通过通道混洗(Channel Shuffle)来促进通道间的信息流通。

技术实现思路

[0003]根据本公开的一个方面,提供了一种存储数据的装置。该装置可以包括:控制单元,被配置为确定至少两个张量中的指定张量在第一存储器中的第一地址;读取单元,被配置为根据前述第一地址从前述第一存储器中至少读取前述指定张量在指定通道上的至少一部分数据;寻址单元,被配置为根据由前述控制单元指示的前述指定通道在前述至少两个张量的所有通道的集合中的索引,确定前述至少一部分数据在第二存储器中的第二地址;以及写入单元,被配置为将前述至少一部分数据写入到前述第二存储器的前述第二地址处。
[0004]根据本公开的另一方面,还提供了一种用于执行分组卷积运算的装置。该装置可以包括卷积运算电路和上述存储数据的装置。
[0005]根据本公开的另一方面,还提供了一种存储数据的方法。该方法可以包括:确定至少两个张量中的指定张量在第一存储器中的第一地址;根据前述第一地址从前述第一存储器中至少读取前述指定张量在指定通道上的至少一部分数据;根据前述指定通道在前述至少两个张量的所有通道的集合中的索引,确定前述至少一部分数据在第二存储器中的第二地址;以及将前述至少一部分数据写入到前述第二存储器的前述第二地址处。
[0006]根据本公开的另一方面,还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,并且计算机程序可以用于执行上述方法。
[0007]根据本公开的另一方面,还提供了一种电子设备。该电子设备可以包括处理器和用于存储处理器可执行指令的存储器,其中,处理器可以用于从存储器中读取可执行指令,并执行可执行指令以实现上述方法。
[0008]根据本公开的实施例的存储数据的装置允许直接通过硬件实现数据的通道混洗和存储,而无需另外的诸如中央处理器(Central Processing Unit,CPU)、脑处理器(Brain Processing Unit,BPU)等处理器或控制器的干预和另外的软件干预,由此能够提高数据的通道混洗和存储的操作效率,而且还能够简化软件指令序列、减轻CPU/BPU等处理器或控制器的负担。
附图说明
[0009]通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0010]图1示出张量数据的示例以及张量数据的连续存储的示例。
[0011]图2示出根据本公开的实施例的存储数据的装置的示例。
[0012]图3示出根据本公开的实施例的存储装置的装置中的控制单元的示例。
[0013]图4示出根据本公开的实施例的存储数据的装置的示例。
[0014]图5示出根据本公开的实施例的用于执行分组卷积运算的装置的示例。
[0015]图6示出根据本公开的实施例的存储数据的方法的示例。
[0016]图7示出根据本公开的实施例的存储数据的方法的示例。
[0017]图8示出根据本公开的电子设备的示例。
具体实施方式
[0018]下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
[0019]概述
[0020]在通常的处理混洗网络数据的方案中,往往采用CPU或BPU来处理通道混洗操作。例如,CPU或BPU执行预定的程序指令,以便使CPU或BPU能够从存储器中读取数据、对所读取的数据进行通道重排/通道混洗以及将经过通道重排/通道混洗的数据再次写入到存储器中。也就是说,在通常的处理方案中,需要CPU/BPU和/或软件干预,才能够实现通道混洗,因此处理效率不高。
[0021]另外,通常的神经网络加速器往往被设计为对传统的卷积运算进行加速,而作为卷积运算的处理对象,张量数据(也被称为特征数据或特征图)通常可以对应于具有高度、宽度、深度(即,通道数量)和数量等一个或多个维度的线性数据、平面数据、数据立方体或多维数据等,按照连续存储方式存储在存储器中。
[0022]例如,如图1中的箭头的上方所示,一个示例性的张量数据可以用一个高度为3、宽度为3、深度(通道数量)为3的数据立方体来形象地表示,其中,每个小立体块(例如,P
1,1,1
、P
1,2,1
等)表示该数据立方体中的一个数据点。如图1所示,每个数据点可以根据其对应的高度值、宽度值和深度值(即,所在的通道的编号)而具有对应的索引或坐标。例如,如果规定H方向(即,高度方向)从原点O开始按照对应的箭头沿图面垂直向下,W方向(即,宽度方向)从原点O开始按照对应的箭头沿图面水平向右,C方向(即,通道方向)从原点O开始按照对应的箭头垂直于图面向后,则该数据立体方中的每个数据点的索引或坐标的一个示例可以如图1所示。
[0023]如图1的箭头下方所示,在具有相同高度值和宽度值的三个通道上的数据点P
1,1,1
、P
1,1,2
和P
1,1,3
被连续地存储在存储器中,而紧接在P
1,1,3
之后连续存储的是具有相同的高度值和宽度值的三个通道上的数据点P
1,2,1
、P
1,2,2
、P
1,2,3
;以此类推,直至P
3,3,1
、P
3,3,2
和P
3,3,3

连续地存储到存储器中。
[0024]按照这样的连续存储方式,在通道混洗时,数据的读写将是不连续的,并因此导致数据读写效率的显著降低,并且影响整个卷积运算加速器的操作效率。
[0025]本公开的技术方案旨在解决或缓解上述技术问题的至少一部分。
[0026]示例性装置
[0027]图2示出根据本公开的实施例的存储数据的装置的示例。如图2所示,装置DEV包括控制单元CU、读取单元RU、寻址单元AU和写入单元WU。
[0028]控制单元CU可以被配置为确定至少两个张量T1至T
n
(n为大于或等于2的自然数)中的指定张量T
r
(r是小于或等于n的任意自然数)在第一存储器M1中的第一地址A
r
。如图1所示,从第一存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储数据的装置,包括:控制单元,被配置为确定至少两个张量中的指定张量在第一存储器中的第一地址;读取单元,被配置为根据所述第一地址从所述第一存储器中至少读取所述指定张量在指定通道上的至少一部分数据;寻址单元,被配置为根据由所述控制单元指示的所述指定通道在所述至少两个张量的所有通道的集合中的索引,确定所述至少一部分数据在第二存储器中的第二地址;以及写入单元,被配置为将所述至少一部分数据写入到所述第二存储器的所述第二地址处。2.根据权利要求1所述的装置,其中,所述第二地址取决于与所述指定通道的索引的二进制数值相对应的比特序列的逆序列。3.根据权利要求2所述的装置,其中,所述比特序列中的比特数量取决于所述至少两个张量的所有通道的总数。4.根据权利要求1至3中的任一项所述的装置,还包括:信号发生单元,被配置为在确定处理完所述至少两个张量中的所有张量的情况下产生指示通道重排结束的信号。5.一种用于执行分组卷积运算的装置,包括:卷积运算电路;以及根据权利要求1至4中的任一项所述的装置。6.一种存储数据的方法,包括:确定至少两个张量中的指定张量在第一...

【专利技术属性】
技术研发人员:孙晨谭洪贺
申请(专利权)人:北京地平线机器人技术研发有限公司
类型:发明
国别省市:

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

1