【技术实现步骤摘要】
深度学习网络处理方法、装置与编译器
本申请涉及深度学习
,尤其涉及一种深度学习网络处理方法、装置与编译器。
技术介绍
近年来,深度学习网络在各领域的应用日益广泛,基于深度学习网络的各种深度学习框架和终端也越来越多。其中,目前主流的深度学习框架有TensorFlow、MXNet、Keras和PyTorch等,终端包括中央处理器(CentralProcessingUnit,CPU)、图形处理器(GraphicsProcessingUnit,GPU)和现场可编程门阵列(Field-ProgrammableGateArray,FPGA)等通用的深度学习处理器和其他专用的深度学习处理器等,这些深度学习框架和终端之间都有所不同,显而易见,以点到点方式实现不同深度学习框架对所有种类的终端进行后端支持是不现实的,因此一款支持前端各种深度学习框架和后端各种终端的编译器显得尤为重要。基于上述需求,基于端到端优化编译器堆栈的深度学习编译器应运而生,它可以将不同的深度学习框架部署到多种终端上,同时满足轻量级、高性能、灵活性与开发容易等要求。另外,用户可以通过深度学习编译器优化深度学习网络的编译过程,以提升深度学习处理器的处理速度。但是,基于目前的编译技术,深度学习处理器与片上存储单元仍需要进行频繁的访存,因而处理性能有限。
技术实现思路
有鉴于此,本申请提供一种深度学习网络处理方法、装置与编译器,用于提升后端深度学习处理器的性能。为了实现上述目的,第一方面,本申请实施例提供一种深度学习网络处 ...
【技术保护点】
1.一种深度学习网络处理方法,其特征在于,包括:/n将深度学习网络拆分为至少一个网络层分组,每个网络层分组均包含多个连续的运算操作;/n对于每个网络层分组,对所述网络层分组进行切分,得到所述网络层分组的分片,其中,所述网络层分组的每个分片在所述网络层分组的每个运算操作的输入特征图中具有对应的子特征图,每个分片对应的各子特征图中后一子特征图为前一子特征图对应的运算操作的输出特征图;/n对于所述网络层分组的每个分片,将与所述分片相关的各运算操作组合在一起,编译生成目标代码块,所述分片相关的各运算操作包括所述分片对应的所有子特征图所涉及的运算操作。/n
【技术特征摘要】
1.一种深度学习网络处理方法,其特征在于,包括:
将深度学习网络拆分为至少一个网络层分组,每个网络层分组均包含多个连续的运算操作;
对于每个网络层分组,对所述网络层分组进行切分,得到所述网络层分组的分片,其中,所述网络层分组的每个分片在所述网络层分组的每个运算操作的输入特征图中具有对应的子特征图,每个分片对应的各子特征图中后一子特征图为前一子特征图对应的运算操作的输出特征图;
对于所述网络层分组的每个分片,将与所述分片相关的各运算操作组合在一起,编译生成目标代码块,所述分片相关的各运算操作包括所述分片对应的所有子特征图所涉及的运算操作。
2.根据权利要求1所述的方法,其特征在于,所述对所述网络层分组进行切分,包括:
根据所述网络层分组中各所述运算操作的输入特征图的尺寸和深度学习处理器的硬件架构,确定所述网络层分组的目标切分方向和目标分片数量,所述目标分片数量为所述网络层分组在所述目标切分方向下待切分的分片数量;
根据所述目标分片数量和所述目标切分方向对所述网络层分组进行切分。
3.根据权利要求2所述的方法,其特征在于,所述根据所述网络层分组中各所述运算操作的输入特征图的尺寸和深度学习处理器的硬件架构,确定所述网络层分组的目标切分方向和目标分片数量,包括:
对于所述网络层分组中的每个运算操作,根据所述运算操作的输入特征图的尺寸和深度学习处理器的硬件架构确定所述运算操作对应的切分方向和分片数量,所述运算操作对应的分片数量为所述运算操作的输入特征图在所述运算操作对应的切分方向下的最小分片数量;
将确定出的各切分方向确定为所述网络层分组的目标切分方向;
对于每个目标切分方向,将所述目标切分方向下数量最多的分片数量确定为所述网络层分组在所述目标切分方向下的目标分片数量。
4.根据权利要求2所述的方法,其特征在于,所述根据所述网络层分组中各所述运算操作的输入特征图的尺寸和深度学习处理器的硬件架构,确定所述网络层分组的目标切分方向和目标分片数量,包括:
根据所述网络层分组中各所述运算操作的输入特征图的尺寸和深度学习处理器的硬件架构确定所述网络层分组的目标切分方向和分片数量范围,所述分片数量范围指示了所述网络层分组的输入特征图在所述目标切分方向下的最小分片数量和最大分片数量;...
【专利技术属性】
技术研发人员:王东,
申请(专利权)人:深圳云天励飞技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。