1.基于循环穿孔的加速CNN图像处理方法,其特征是,包括:获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
2.如权利要求1所述的方法,其特征是,所述从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序,具体步骤包括:计算待加速的基于卷积神经网络CNN的图像处理程序中每个循环程序的执行时间,获取占用总执行时间最多的前M个循环程序;M为设定值,M为正整数;选取占总执行时间前N个的循环作为目标循环程序。
3.如权利要求1所述的方法,其特征是,所述执行循环穿孔的具体步骤包括:S21:对待加速的基于卷积神经网络CNN的图像处理程序进行运行,记录待加速的基于卷积神经网络CNN的图像处理程序的第一输出精度,即精确精度;
步骤S22和步骤S23是并发进行的;
S22:对目标循环程序的指令进行模拟穿孔;记录每次模拟穿孔后待加速程序的第二输出精度;
S23:对目标循环程序的迭代进行模拟穿孔;记录每次模拟穿孔后待加速程序的第三输出精度;
S24:每次模拟穿孔后,如果目标循环程序中止或崩溃,则当前被模拟穿孔的指令为敏感指令;否则,当前被模拟穿孔的指令为弹性指令;
每次模拟穿孔后,如果目标循环程序中止或崩溃,则当前被模拟穿孔的迭代为敏感迭代;否则,当前被模拟穿孔的迭代为弹性迭代;
S25:根据待加速程序的第一输出精度和每次模拟穿孔后待加速程序的第二输出精度,计算第一相对误差;
根据待加速程序的第一输出精度和每次模拟穿孔后待加速程序的第三输出精度,计算第二相对误差;
S26:根据计算的第一相对误差和第二相对误差,筛选出第一相对误差和第二相对误差均在设定范围内的弹性指令;绘制每条弹性指令与第一相对误差和第二相对误差的关系图;
根据计算的第一相对误差和第二相对误差,筛选出第一相对误差和第二相对误差均在设定范围内的弹性迭代;绘制每条弹性迭代与第一相对误差和第二相对误差的关系图;
S27:根据每条弹性指令与第一相对误差和第二相对误差的关系图,对第一相对误差和第二相对误差均小于设定范围的弹性指令,按照损失精度从小到大的顺序依次进行真实折半穿孔;
根据每条弹性迭代与第一相对误差和第二相对误差的关系图,对第一相对误差和第二相对误差均小于设定范围的弹性迭代,按照损失精度从小到大的顺序依次进行真实折半穿孔;得到初始近似程序。
4.如权利要求3所述的方法,其特征是,所述S22:对目标循环程序的指令进行模拟穿孔;是采用注释技术对目标循环程序的指令进行模拟穿孔。
5.如权利要求3所述的方法,其特征是,所述S23:对目标循环程序的迭代进行模拟穿孔;是采用自定义算法对目标循环程序的迭代进行模拟穿孔;
所述采用自定义算法对目标循环程序的迭代进行模拟穿孔,具体步骤包括:对目标循环程序的每一次迭代进行模拟穿孔,记录每一次模拟穿孔待加速程序的输出精度。
6.如权利要求3所述的方法,其特征是,
所述穿孔,是控制指定的指令或迭代在待加速程序运行的过程中不执行;
所述折半穿孔,是对待穿孔的指令的前二分之一执行穿孔。
7.如权利要求3所述的方法,其特征是,
每一次真实折半穿孔结束,均判断待加速程序当前的最终输出精度与第一输出精度之间的误差,若误差在设定范围之内,则继续判断未穿孔的指令的个数是否大于0,如果大于0,则继续对下一个未穿孔的指令执行折半穿孔;
若误差不在设定范围之内,则判断本次穿孔的指令或迭代的总个数;每次循环执行相同的部分则称为一次迭代;若总个数大于1,进行重穿孔,即对本次穿孔指令或迭代的前1/2执行穿孔;若本次穿孔总个数≤1,则结束穿孔操作。
8.基于循环穿孔的加速CNN图像处理系统,其特征是,包括:目标循环程序识别模块,其被配置为:获取待加速的基于卷积神经网络CNN的图像处理程序,从待加速的基于卷积神经网络CNN的图像处理程序中识别目标循环程序;
循环穿孔模块,其被配置为:基于动态质量管理策略,对待加速的基于卷积神经网络CNN的图像处理程序执行循环穿孔处理;
应用模块,其被配置为:获取待处理图像,将待处理图像输入到经过循环穿孔处理后的基于卷积神经网络CNN的图像处理程序中,输出处理后的结果。
9.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项方法所述的步骤。
10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项方法所述的步骤。