一种基于神经网络的运算方法及装置制造方法及图纸

技术编号:25916427 阅读:30 留言:0更新日期:2020-10-13 10:35
本发明专利技术所提供的一种基于神经网络的运算方法和装置,获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;判断所述计算类型是否满足预设条件,获得判断结果;如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;将所述混合计算结果写入到内存,所述计算类型至少包括:卷积计算类型和混合计算类型,在卷积或者混合计算过程中,每行的所有通道的数据都缓存在buffer空间,卷积窗口从左至右滑动直至一行结束后,避免了同一行数据被不卷积窗口用时反复从DDR中读取,在数据加载过程大大节省了DDR带宽的同时提升了每行数据的复用率。

【技术实现步骤摘要】
一种基于神经网络的运算方法及装置
本专利技术涉及一种算法技术,尤其涉及一种基于神经网络的运算方法及装置。
技术介绍
关于神经网络算法,传统方法,只能运行特定神经网络模型的特定计算算子,在设计之初针对特定的神经网络模型输入输出数据结构特点按最大化原则将所有所有数据全部或者部分分块缓存起来再分时分批调用,在分批调用时数据等待时间增加,并且不能任意支持其他的计算算子,通用性比较差。不能够兼容算法的多样性,从而导致计算其他神经网络模型效率低下或者不能执行,灵活性也比较差。
技术实现思路
为达到上述目的,本专利技术实施例的技术方案是这样实现的:根据本专利技术实施例的一方面,提供一种基于神经网络的运算方法及装置,所述方法包括:获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;判断所述计算类型是否满足预设条件,获得判断结果;如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;将所述混合计算结果写入到内存,从而缩短运算时间;其中,所述计算类型至少包括:卷积计算类型和混合计算类型。上述方案中,判断所述计算类型是否满足预设条件,获得判断结果后,包括:如果所述判断结果为不满足,则将当前层的卷积计算结果写回所述内存,启动下一个循环的计算任务时再进行计算。上述方案中,如果所述判断结果为不满足,包括:当前层为卷积计算类型,下一层仍然为卷积计算类型。上述方案中,如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,包括:当前层为卷积计算类型,下一层为混合计算类型;在卷积计算结果的缓存区域取出所述下一层混合计算所需的输入数据进行混合计算。上述方案中,将所述混合计算结果写入到内存后,还包括:输入数据流在pipeline结构中进行处理。上述方案中,获取神经网络模型的计算类型前,包括:按卷积尺寸和strides取出数据,进行卷积计算。上述方案中,通过卷积尺寸和strides取出数据,进行卷积计算前,还包括:获取数据,按卷积规则缓存块存储。根据本专利技术实施例的另一方面,提供一种基于神经网络的运算装置,所述装置包括:获取单元,用于获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;判断单元,用于判断所述计算类型是否满足预设条件,获得判断结果;运算单元,用于如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;将所述混合计算结果写入到内存;其中,所述计算类型至少包括:卷积计算类型和混合计算类型。根据本专利技术实施例的另一方面,提供一种基于神经网络的运算装置,所述装置包括:存储器、处理器以及存储在存储器被处理器运行的可响应程序,所述处理器运行所述可响应程序时响应上述任一项所述的运算方法的步骤。本专利技术所提供的一种基于神经网络的运算方法和装置,获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;判断所述计算类型是否满足预设条件,获得判断结果;如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;将所述混合计算结果写入到内存;其中,所述计算类型至少包括:卷积计算类型和混合计算类型,在卷积或者混合计算过程中,每行的所有通道的数据都缓存在buffer空间,卷积窗口从左至右滑动直至一行结束后,无需用到的行数据才被后面行的数据覆盖,避免了同一行数据被不卷积窗口用时反复从DDR中读取,在数据加载过程大大节省了DDR带宽的同时提升了每行数据的复用率。附图说明图1为本专利技术实施例提供的一种基于神经网络的运算方法的实现流程示意图;图2为本专利技术实施例提供的专利技术系统框图;图3为本专利技术实施例提供的计算并行度示意图;图4为本专利技术实施例提供的另一实现流程示意图;图5为本专利技术实施例运算装置的结构组成示意图一;图6为本专利技术实施例提供的数据输入输出流向图;图7为本专利技术实施例提供的卷积计算过程;图8为本专利技术实施例提供的混合计算过程;图9为本专利技术实施例提供的各功能缓存空间设置参数;图10为本专利技术实施例提供的imagebufferram空间示意图;图11为本专利技术实施例提供的imageDDR存储示意图;图12为本专利技术实施例提供的Weightbufferram空间示意图;图13为本专利技术实施例提供的WeightDDR存储示意图;图14为本专利技术实施例提供的Miscbufferram空间示意图;图15为本专利技术实施例提供的middlebufferram空间示意图;图16为本专利技术实施例提供的outputbufferram空间示意图。具体实施方式为了能够更加详尽地了解本专利技术的特点与
技术实现思路
,下面结合附图对本专利技术的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本专利技术。图1为本专利技术实施例提供的一种基于神经网络的运算方法的实现流程示意图,如图1所示,所述方法包括:步骤S101,获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;步骤S102,判断所述计算类型是否满足预设条件,获得判断结果;步骤S103,如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;将所述混合计算结果写入到内存,从而缩短运算时间;其中,所述计算类型至少包括:卷积计算类型和混合计算类型。在另一实施例中,判断所述计算类型是否满足预设条件,获得判断结果后,包括:如果所述判断结果为不满足,则将当前层的卷积计算结果写回所述内存,启动下一个循环的计算任务时再进行计算。在另一实施例中,如果所述判断结果为不满足,包括:当前层为卷积计算类型,下一层仍然为卷积计算类型。在另一实施例中,如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,包括:当前层为卷积计算类型,下一层为混合计算类型;在卷积计算结果的缓存区域取出所述下一层混合计算所需的输入数据进行混合计算。在另一实施例中,将所述混合计算结果写入到内存后,还包括:输入数据流在pipeline结构中进行处理。在另一个实施例中,获取神经网络模型的计算类型前,包括:按卷积尺寸和strides取出数据,进行卷积计算。在另一个实施例中,通过卷积尺寸和strides取出数据,进行卷积计算前,还包括:获取数据,按卷积规则缓存块存储。在另一个实施例中,图2是本专利技术系统框图,推理计算平台是FPGA芯片,在FPGA内部设计一种通用的缓存存储机制来支持不同神经网络模型的的推理计算。神经网络模型的推理计算过程实际上就是针对神经网络模型每一层的具体计算算子的实现过程,具体的计算算子有常规的卷积类:包括常规卷积、分离卷积、反卷积计算,和混合计算类:包括pooling池化下采样、upsample上采样,route通道对应点相加、concat通道对应连接等计算算子。其中B本文档来自技高网
...

【技术保护点】
1.一种基于神经网络的运算方法,其特征在于,所述方法包括:/n获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;/n判断所述计算类型是否满足预设条件,获得判断结果;/n如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;/n将所述混合计算结果写入到内存,/n其中,所述计算类型至少包括:卷积计算类型和混合计算类型。/n

【技术特征摘要】
1.一种基于神经网络的运算方法,其特征在于,所述方法包括:
获取神经网络模型的计算类型,其中,包括当前层的所述计算类型和下一层计算类型;
判断所述计算类型是否满足预设条件,获得判断结果;
如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,获得混合计算结果;
将所述混合计算结果写入到内存,
其中,所述计算类型至少包括:卷积计算类型和混合计算类型。


2.根据权利要求1所述的方法,其特征在于,判断所述计算类型是否满足预设条件,获得判断结果后,包括:
如果所述判断结果为不满足,则将当前层的卷积计算结果写回所述内存,启动下一个循环的计算任务时再进行计算。


3.根据权利要求2所述的方法,其特征在于,如果所述判断结果为不满足,包括:
当前层为卷积计算类型,下一层仍然为卷积计算类型。


4.根据权利要求1所述的方法,其特征在于,如果所述判断结果为满足,则取出下一层混合计算所需的输入数据进行混合计算,包括:
当前层为卷积计算类型,下一层为混合计算类型;
在卷积计算结果的缓存区域取出所述下一层混合计算所需的输入数据进行混合计算。


5.根据权利要求4所述的方法,其特...

【专利技术属性】
技术研发人员:陈海波
申请(专利权)人:深兰人工智能芯片研究院江苏有限公司
类型:发明
国别省市:江苏;32

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

1