卷积运算的处理方法、电子设备及计算机可读存储介质技术

技术编号:30532729 阅读:14 留言:0更新日期:2021-10-30 12:41
本申请涉及卷积运算技术领域,公开了卷积运算的处理方法、电子设备及计算机可读存储介质。该方法包括:获取待处理的卷积运算、硬件参数以及配置数据库;若确定配置数据库中无卷积运算的卷积尺寸和硬件参数对应的配置参数,则根据卷积尺寸以及硬件参数定义一参数搜索空间;其中,配置数据库的配置参数基于Winograd算法确定;根据Winograd算法将参数搜索空间中的配置参数生成多个运算代码,并利用多个运算代码对卷积运算进行计算,以得到多个运算结果;将多个运算结果中满足预设条件的一个运算结果对应的运算代码的配置参数,存储至配置数据库。通过上述方式,能够提升该电子设备进行卷积运算的计算性能。卷积运算的计算性能。卷积运算的计算性能。

【技术实现步骤摘要】
卷积运算的处理方法、电子设备及计算机可读存储介质


[0001]本申请涉及卷积运算
,特别是涉及卷积运算的处理方法、电子设备及计算机可读存储介质。

技术介绍

[0002]IoT及移动设备市场研究估计,到2020年,市场上将有多达200亿个连接设备。这些设备预计将在云端和移动设备或IoT之间产生数十亿PB的数据流量。仅在2017年,市场预计将有84亿个连接的设备,这引发了在移动端预处理数据的强烈需求,并导致许多物联网设备制造商,尤其是那些致力于智能相机,无人机,机器人,AR/VR等视觉设备的设备制造商将智能带入了边缘或者移动端。
[0003]近些年来,深度学习已经开始部署于移动设备和嵌入式设备上,而且该趋势日益剧增。例如在消费级市场领域,Apple X上的人脸识别(称为Face ID),HoloLens上的手势识别,Apple TV上的语音控制,mavic pro上的障碍回避,自动驾驶汽车上的智能导航,实时战略游戏等;在政府或军事用途领域,数百万摄像头的交通监控,水下机器人的船舶清洁,无人无GPS的智能无人机巡航(彩虹3无人机),军用机器人目标识别等。
[0004]但是目前移动设备或嵌入式设备仍然是采用人工调参或者以固定方式进行卷积运算,不同设备因硬件不同,计算性能并不能得到提升。

技术实现思路

[0005]本申请主要解决的技术问题是提供卷积运算的处理方法、电子设备及计算机可读存储介质,能够提升该电子设备进行卷积运算的计算性能。
[0006]为了解决上述问题,本申请采用的一种技术方案是提供一种卷积运算的处理方法,该方法包括:获取待处理的卷积运算、硬件参数以及配置数据库;若确定配置数据库中无卷积运算的卷积尺寸和硬件参数对应的配置参数,则根据卷积尺寸以及硬件参数定义一参数搜索空间;其中,配置数据库的配置参数基于Winograd算法确定;根据Winograd算法将参数搜索空间中的配置参数生成多个运算代码,并利用多个运算代码对卷积运算进行计算,以得到多个运算结果;将多个运算结果中满足预设条件的一个运算结果对应的运算代码的配置参数,存储至配置数据库。
[0007]其中,若确定配置数据库中无卷积运算的卷积尺寸和硬件参数对应的配置参数,则根据卷积尺寸以及硬件参数定义一参数搜索空间,包括:判断配置数据库中是否有卷积运算的卷积尺寸和硬件参数对应的配置参数;若是,则按照配置参数生成运算代码,并进行计算得到运算结果;若否,则根据卷积尺寸以及硬件参数定义多个配置参数,以形成参数搜索空间。
[0008]其中,卷积尺寸和硬件参数对应的配置参数至少包括输入通道的数量、输出通道的数量、输入数据的尺寸、卷积核变换对应的寄存器块数量、卷积核输出通道的数据块、输入数据变换对应的寄存器块数量、输入数据变换对应的缓存块、卷积核转换标签、搜索空间
标签;其中,卷积核变换对应的寄存器块数量的取值范围为[2,7],卷积核输出通道的数据块的取值范围为[0,K/n],n为卷积核变换对应的寄存器块数量,K为输出通道的数量,输入数据变换对应的寄存器块数量的取值范围为[2,7],输入数据变换对应的缓存块的取值范围为[0,tiles/m],m为输入数据变换对应的寄存器块数量,tiles为缓存块的数量,卷积核转换标签为0或1,搜索空间标签为0、1、2或3。
[0009]其中,根据卷积尺寸以及硬件参数定义多个配置参数,以形成参数搜索空间,包括:根据卷积尺寸以及硬件参数定义多个参数组合,以得到配置参数;基于配置参数形成参数搜索空间。
[0010]其中,根据Winograd算法将参数搜索空间中的配置参数生成多个运算代码,并利用多个运算代码对卷积运算进行计算,以得到多个运算结果,包括:对参数搜索空间中的每个参数组合生成一运算代码,得到多个运算代码;利用多个运算代码分别对卷积运算进行计算,以得到多个运算结果。
[0011]其中,将多个运算结果中满足预设条件的一个运算结果对应的运算代码的配置参数,存储至配置数据库,包括:判断多个运算结果中是否存在满足预设条件的运算结果,预设条件至少包括运算结果对应的运算时间最短;若是,则将满足预设条件的运算结果对应的配置参数存储至配置数据库。
[0012]其中,利用多个运算代码分别对卷积运算进行计算,以得到多个运算结果,包括:根据运算代码中的卷积核变换对应的寄存器块数量和卷积核输出通道的数据块进行卷积核变换,得到卷积核变换矩阵;根据运算代码中的输入数据变换对应的寄存器块数量和输入数据变换对应的缓存块对输入数据进行变换,得到输入数据变换矩阵;将卷积核变换矩阵和输入数据变换矩阵按照搜索空间标签进行矩阵乘法,得到预运算结果;将预运算结果进行压缩,得到运算结果。
[0013]其中,根据运算代码中的卷积核变换对应的寄存器块数量和卷积核输出通道的数据块进行卷积核变换,得到卷积核变换矩阵,包括:根据运算代码中的卷积核变换对应的寄存器块数量和卷积核输出通道的数据块进行卷积核变换,并根据卷积核的数据内存地址进行排序,得到卷积核变换矩阵,卷积核变换矩阵中的相邻元素的内存地址连续;根据运算代码中的输入数据变换对应的寄存器块数量和输入数据变换对应的缓存块对输入数据进行变换,得到输入数据变换矩阵,包括:根据运算代码中的输入数据变换对应的寄存器块数量和输入数据变换对应的缓存块对输入数据进行变换,并根据输入数据的数据内存地址进行排序,得到输入数据变换矩阵,输入数据变换矩阵中的相邻元素的内存地址连续。
[0014]为了解决上述问题,本申请采用的另一种技术方案是提供一种电子设备,该电子设备包括处理器以及与处理器耦接的存储器,存储器中存储有程序数据,处理器用于执行程序数据以实现如上述技术方案提供的处理方法。
[0015]为了解决上述问题,本申请采用的另一种技术方案是提供一种计算机可读存储介质,该计算机可读存储介质存储有程序数据,程序数据在被处理器执行时,实现如上述技术方案提供的处理方法。
[0016]本申请的有益效果是:区别于现有技术的情况,本申请的卷积运算的处理方法、电子设备及计算机可读存储介质。该方法通过确定配置数据库中没有卷积尺寸和硬件参数对应的配置参数后,根据卷积尺寸以及硬件参数定义一参数搜索空间,从而在根据参数搜索
空间中的配置参数对卷积运算进行重构优化,生成多个运算代码,并利用多个运算代码对待处理的卷积运算进行计算,以得到多个运算结果,进而将满足预设条件的运算结果对应的配置参数存储至配置数据库,该满足预设条件的运算结果对应的配置参数能够提升该设备进行卷积运算的计算性能,进而能够实现电子设备在进行卷积运算时的自动配置参数优化,无需人工调参,提升电子设备的计算性能以及减少用户操作,进而提升用户体验。
附图说明
[0017]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:...

【技术保护点】

【技术特征摘要】
1.一种卷积运算的处理方法,其特征在于,所述方法包括:获取待处理的卷积运算、硬件参数以及配置数据库;若确定所述配置数据库中无所述卷积运算的卷积尺寸和所述硬件参数对应的配置参数,则根据所述卷积尺寸以及所述硬件参数定义一参数搜索空间;其中,所述配置数据库的配置参数基于Winograd算法确定;根据所述Winograd算法将所述参数搜索空间中的配置参数生成多个运算代码,并利用所述多个运算代码对所述卷积运算进行计算,以得到多个运算结果;将所述多个运算结果中满足预设条件的一个运算结果对应的运算代码的配置参数,存储至所述配置数据库。2.根据权利要求1所述的处理方法,其特征在于,所述若确定所述配置数据库中无所述卷积运算的卷积尺寸和所述硬件参数对应的配置参数,则根据所述卷积尺寸以及所述硬件参数定义一参数搜索空间,包括:判断所述配置数据库中是否有所述卷积运算的卷积尺寸和所述硬件参数对应的配置参数;若是,则按照所述配置参数生成运算代码,并进行计算得到运算结果;若否,则根据所述卷积尺寸以及所述硬件参数定义多个配置参数,以形成所述参数搜索空间。3.根据权利要求2所述的处理方法,其特征在于,所述卷积尺寸和所述硬件参数对应的所述配置参数至少包括输入通道的数量、输出通道的数量、输入数据的尺寸、卷积核变换对应的寄存器块数量、卷积核输出通道的数据块、输入数据变换对应的寄存器块数量、输入数据变换对应的缓存块、卷积核转换标签、搜索空间标签;其中,所述卷积核变换对应的寄存器块数量的取值范围为[2,7],所述卷积核输出通道的数据块的取值范围为[0,K/n],所述n为所述卷积核变换对应的寄存器块数量,所述K为所述输出通道的数量,所述输入数据变换对应的寄存器块数量的取值范围为[2,7],所述输入数据变换对应的缓存块的取值范围为[0,tiles/m],所述m为所述输入数据变换对应的寄存器块数量,所述tiles为所述缓存块的数量,所述卷积核转换标签为0或1,所述搜索空间标签为0、1、2或3。4.根据权利要求2所述的处理方法,其特征在于,所述根据所述卷积尺寸以及所述硬件参数定义多个配置参数,以形成所述参数搜索空间,包括:根据所述卷积尺寸以及所述硬件参数定义多个参数组合,以得到所述配置参数;基于所述配置参数形成所述参数搜索空间。5.根据权利要求4所述的处理方法,其特征在于,所述根据所述Winograd算法将所述参数搜索空间中的配置参数生成多个运算代码,并利用所述多个运算代码对所述卷积运算进...

【专利技术属性】
技术研发人员:庄晨孟金涛魏彦杰
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:

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

1