本公开涉及半导体领域,尤其涉及一种神经网络电路及神经网络芯片。
背景技术:
1、随着科技的不断发展,深度学习与人工智能方面取得了巨大的成果,进而对各种深度学习与人工智能算法的处理速度有了越来越高的需求,因此出现了专门用于神经网络加速的专用集成电路(application specific integrated circuit,asic)芯片。
2、现有张量处理器(tensor processing unit,tpu)为一种常用的神经网络加速asic芯片,该芯片具有专用于深度学习的架构,可以加速神经网络相关计算的效率,但是该芯片仍存在可供优化的空间。
技术实现思路
1、本公开提供一种神经网络电路及神经网络芯片,以实现卷积操作的硬件化加速,且支持多种数据处理类型。
2、第一方面,本公开提供一种神经网络电路,包括:m个执行模块和控制模块;其中,m个执行模块中的每个执行模块中存储有不同输入通道对应的特征图和卷积核,并且m个执行模块中特征图和卷积核存储的物理地址相同,m是大于或等于2的整数。并且其中,控制模块,被配置为:接收外部控制器发送的第一指令,第一指令由外部控制器生成;以及根据第一指令,向m个执行模块传输控制信号,其中,控制信号用于指示m个执行模块中的目标物理地址。以及m个执行模块中的每个执行模块,被配置为:响应于接收到的控制信号,从目标物理地址读取存储的第一特征图和第一卷积核;以及基于第一卷积核,对第一特征图进行卷积运算。
3、在一种可能的实施方式中,卷积运算包括以下各项中的至少一项:池化卷积以及深度卷积。
4、在一种可能的实施方式中,m个执行模块中的每个执行模块包括:数据控制子模块,数据存储子模块和数据计算子模块,其中,第一特征图和第一卷积核存储于数据存储子模块。并且其中,数据控制子模块,被配置为:接收控制模块传输的控制信号;根据控制信号,获得目标物理地址;根据目标物理地址,从数据存储子模块读取第一特征图和第一卷积核;以及将读取的第一特征图和第一卷积核输入数据计算子模块。以及数据计算子模块,被配置为:接收数据控制子模块输入的第一特征图和第一卷积核;以及基于第一卷积核,对第一特征图进行卷积运算。
5、在一种可能的实施方式中,数据计算子模块,还用于向数据控制子模块输出卷积后的第一特征图;数据控制子模块,还用于将卷积后的第一特征图写入数据存储子模块。
6、在一种可能的实施方式中,m个执行模块中的每个执行模块,还用于对第一特征图和/或第一卷积核进行目标操作,基于操作后的第一卷积核和/或第一特征图,执行卷积操作。
7、在一种可能的实施方式中,m个执行模块中的每个执行模块,还用于执行以下各项中的至少一项:基于操作后的第一卷积核对第一特征图执行卷积操作;基于第一卷积核对操作后的第一特征图执行卷积操作;以及基于操作后的第一卷积核对操作后的第一特征图执行卷积操作。
8、在一种可能的实施方式中,目标操作包括以下各项中的至少一项:对特征图进行插值操作、对特征图进行填充操作、对卷积核进行膨胀操作、对卷积核进行旋转操作。
9、在一种可能的实施方式中,控制模块,还用于向m个执行模块中的每个执行模块输入目标操作所需的操作数。
10、在一种可能的实施方式中,控制模块,还用于指示m个执行模块中的每个执行模块在数据存储子模块中获取目标操作所需的操作数。
11、第二方面,本公开提供一种神经网络芯片,包括:基板;布设于基板上的如第一方面及其可能的实施方式中的神经网络电路。
12、本公开提供的技术方案可以包括以下有益效果:
13、本公开中,m个执行模块被配置存储有不同通道的特征图和卷积核,且m个执行模块中存储特征图和卷积核的物理地址相同,使得通过控制模块的控制,实现m个执行模块同时对相应数据进行卷积运算。一方面能够基于神经网络电路的优化架构实现多通道池化卷积、深度卷积的并行处理,提高计算效率;另一方面,能够有效支持池化卷积、深度卷积过程中的多种需求,使得神经网络电路具有更加广泛的应用场景。
14、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开的保护范围。
1.一种神经网络电路,其特征在于,包括:m个执行模块和控制模块,其中,所述m个执行模块中的每个执行模块中存储有不同输入通道对应的特征图和卷积核,并且所述m个执行模块中所述特征图和所述卷积核存储的物理地址相同,m是大于或等于2的整数,并且其中,
2.根据权利要求1所述的神经网络电路,其特征在于,所述卷积运算包括以下各项中的至少一项:池化卷积以及深度卷积。
3.根据权利要求1所述的神经网络电路,其特征在于,所述m个执行模块中的每个执行模块包括:数据控制子模块,数据存储子模块和数据计算子模块,其中,所述第一特征图和所述第一卷积核存储于所述数据存储子模块,并且其中,
4.根据权利要求3所述的神经网络电路,其特征在于,所述数据计算子模块,还用于向所述数据控制子模块输出卷积后的第一特征图;
5.根据权利要求3所述的神经网络电路,其特征在于,所述m个执行模块中的每个执行模块,还用于对所述第一特征图和/或所述第一卷积核进行目标操作,基于操作后的第一卷积核和/或第一特征图,执行卷积操作。
6.根据权利要求5所述的神经网络电路,其特征在于,所述m个执行模块中的每个执行模块,还用于执行以下各项中的至少一项:
7.根据权利要求5所述的神经网络电路,其特征在于,所述目标操作包括以下各项中的至少一项:对特征图进行插值操作、对特征图进行填充操作、对卷积核进行膨胀操作、对卷积核进行旋转操作。
8.根据权利要求5所述的神经网络电路,其特征在于,所述控制模块,还用于向所述m个执行模块中的每个执行模块输入所述目标操作所需的操作数。
9.根据权利要求5所述的神经网络电路,其特征在于,所述控制模块,还用于指示所述m个执行模块中的每个执行模块在所述数据存储子模块中获取所述目标操作所需的操作数。
10.一种神经网络芯片,其特征在于,包括: