当前位置: 首页 > 专利查询>复旦大学专利>正文

基于CNN矩阵分块的调度方法、装置、设备及存储介质制造方法及图纸

技术编号:33637621 阅读:8 留言:0更新日期:2022-06-02 01:52
本申请涉及计算机网络技术领域,特别涉及一种基于CNN矩阵分块的调度方法、装置、设备及存储介质,方法包括:接收由用户提交的CNN神经网络的至少一个计算作业,并按照预设作业优先级排序方式响应每个计算作业的同时,确定每个计算作业的优先级;根据一个或多个FPGA板卡的空闲资源和已发布任务接收情况生成任务发布请求,按照预设数据依赖关系和预设作业优先级排序响应任务发布请求;基于已发布的待接收计算任务,通过预设FPGA资源调度算法进行矩阵分块,分配相应FPGA资源,以部署到一个或多个FPGA板卡上对已发布的待接收计算任务进行并行计算。由此,解决了相关技术中无法达到最优加速效果,易造成FPGA资源浪费等问题。易造成FPGA资源浪费等问题。易造成FPGA资源浪费等问题。

【技术实现步骤摘要】
基于CNN矩阵分块的调度方法、装置、设备及存储介质


[0001]本申请涉及计算机网络
,特别涉及一种基于CNN(Convolutional Neural Networks,卷积神经网络)矩阵分块的调度方法、装置、设备及存储介质。

技术介绍

[0002]相关技术中,CNN在FPGA(Field Programmable Gate Array,现场可编程门阵列)上的加速器架构研究已经十分成熟,为了增加计算的并行性,有多种对CNN进行网络分割的方法,可以从输入矩阵的深度、宽度和高度等维度对输入矩阵进行分块。由于卷积层的计算特点,在深度上对矩阵进行分块会产生大量的数据传输成本,造成了通信资源的浪费,因此最常采用的办法是对矩阵宽高进行分块。CNN矩阵分块后一般会部署在连接有多块FPGA板卡的异构计算平台。
[0003]然而,相关技术中针对不同大小的CNN网络层无法灵活改变其分块方案,以达到最优的加速效果;CNN中会存在不适合分块计算的网络层,当计算到这些网络层时,因为网络层之间的数据依赖关系,相同CNN任务的其它网络层无法同时进行计算,导致FPGA板卡资源空闲,造成资源浪费。

技术实现思路

[0004]本申请提供一种基于CNN矩阵分块的调度方法、装置、设备及存储介质,以解决相关技术中针对不同大小的CNN网络层无法灵活改变其分块方案,以达到最优的加速效果,且CNN网络层之间的数据依赖性会造成的FPGA资源浪费等问题。
[0005]本申请第一方面实施例提供一种基于CNN矩阵分块的调度方法,包括以下步骤:接收由用户提交的卷积神经网络CNN神经网络的至少一个计算作业,并按照预设作业优先级排序方式响应每个计算作业的同时,确定所述每个计算作业的优先级;根据一个或多个FPGA板卡的空闲资源和已发布任务接收情况生成任务发布请求,按照预设数据依赖关系和所述预设作业优先级排序响应所述任务发布请求;基于已发布的待接收计算任务,通过预设FPGA资源调度算法进行矩阵分块,分配相应FPGA资源,以部署到所述一个或多个FPGA板卡上对所述已发布的待接收计算任务进行并行计算。
[0006]进一步地,所述按照预设作业优先级排序方式响应每个计算作业的同时,确定所述每个计算作业的优先级,包括:检测所述每个计算作业的实际类型;在检测到所述实际类型为紧急类型,则将所述紧急类型的计算作业加入紧急作业队列,并基于作业提交时间确定所述紧急类型的计算作业的优先级;在检测到所述实际类型为正常类型,则将所述正常类型的计算作业加入正常作业队列,并基于作业等待时间和预估执行时间确定所述正常类型的计算作业的优先级,其中,所述紧急作业队列的优先级高于所述正常作业队列的优先级。
[0007]进一步地,所述正常类型的计算作业的优先级由所述作业等待时间和所述预估执行时间的比值得到,并且所述作业等待时间为当前时间和所述正常类型的计算作业的提交
时间的差值得到。
[0008]进一步地,所述基于已发布的待接收计算任务,通过预设FPGA资源调度算法进行矩阵分块,分配相应FPGA资源,包括:判断当前任务的网络层类型;如果所述网络层类型为全连接层,则为当前任务分配一块用于执行计算任务的FPGA板卡;如果所述网络层类型为卷积层,则由乘加操作的数量确定需要计算的数据量,并基于所述需要计算的数据量得到最优矩阵分块和资源分配策略;如果所述网络层类型为池化层,则由输入矩阵大小计算总数据量,并基于所述总数据量得到所述最优矩阵分块和资源分配策略。
[0009]进一步地,已重构相同网络层类型电路的FPGA板卡的分配优先级为最高,且每次同时待执行的计算任务数量小于或等于二。
[0010]本申请第二方面实施例提供一种基于CNN矩阵分块的调度装置,包括:接收模块,用于接收由用户提交的卷积神经网络CNN神经网络的至少一个计算作业,并按照预设作业优先级排序方式响应每个计算作业的同时,确定所述每个计算作业的优先级;响应模块,用于根据一个或多个FPGA板卡的空闲资源和已发布任务接收情况生成任务发布请求,按照预设数据依赖关系和所述预设作业优先级排序响应所述任务发布请求;调度模块,用于基于已发布的待接收计算任务,通过预设FPGA资源调度算法进行矩阵分块,分配相应FPGA资源,以部署到所述一个或多个FPGA板卡上对所述已发布的待接收计算任务进行并行计算。
[0011]进一步地,所述接收模块进一步用于检测所述每个计算作业的实际类型;在检测到所述实际类型为紧急类型,则将所述紧急类型的计算作业加入紧急作业队列,并基于作业提交时间确定所述紧急类型的计算作业的优先级;在检测到所述实际类型为正常类型,则将所述正常类型的计算作业加入正常作业队列,并基于作业等待时间和预估执行时间确定所述正常类型的计算作业的优先级,其中,所述紧急作业队列的优先级高于所述正常作业队列的优先级;其中,所述正常类型的计算作业的优先级由所述作业等待时间和所述预估执行时间的比值得到,并且所述作业等待时间为当前时间和所述正常类型的计算作业的提交时间的差值得到。
[0012]进一步地,所述调度模块进一步用于:判断当前任务的网络层类型;如果所述网络层类型为全连接层,则为当前任务分配一块用于执行计算任务的FPGA板卡;如果所述网络层类型为卷积层,则由乘加操作的数量确定需要计算的数据量,并基于所述需要计算的数据量得到最优矩阵分块和资源分配策略;如果所述网络层类型为池化层,则由输入矩阵大小计算总数据量,并基于所述总数据量得到所述最优矩阵分块和资源分配策略。
[0013]进一步地,已重构相同网络层类型电路的FPGA板卡的分配优先级为最高,且每次同时待执行的计算任务数量小于或等于二。
[0014]本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的基于CNN矩阵分块的调度方法。
[0015]本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的基于CNN矩阵分块的调度方法。
[0016]由此,本申请至少具有如下有益效果:
[0017]实现CNN不同网络层矩阵的自动分块,使得系统能够根据不同网络层的特性灵活
改变分块方案,实现最优的加速效果和最高效的资源利用效率;支持多个CNN计算任务并行执行,有效解决CNN网络层之间的数据依赖性会造成的FPGA资源浪费,同时能够结合CNN矩阵自动分块,高效地使用异构平台计算过程中空闲出来的FPGA资源,以最大化资源利用效率。由此,解决了相关技术中针对不同大小的CNN网络层无法灵活改变其分块方案,以达到最优的加速效果,且CNN网络层之间的数据依赖性会造成的FPGA资源浪费等问题。
[0018]本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
[0019]本申请上述的和/或附本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CNN矩阵分块的调度方法,其特征在于,包括以下步骤:接收由用户提交的卷积神经网络CNN神经网络的至少一个计算作业,并按照预设作业优先级排序方式响应每个计算作业的同时,确定所述每个计算作业的优先级;根据一个或多个FPGA板卡的空闲资源和已发布任务接收情况生成任务发布请求,按照预设数据依赖关系和所述预设作业优先级排序响应所述任务发布请求;以及基于已发布的待接收计算任务,通过预设FPGA资源调度算法进行矩阵分块,分配相应FPGA资源,以部署到所述一个或多个FPGA板卡上对所述已发布的待接收计算任务进行并行计算。2.根据权利要求1所述的方法,其特征在于,所述按照预设作业优先级排序方式响应每个计算作业的同时,确定所述每个计算作业的优先级,包括:检测所述每个计算作业的实际类型;在检测到所述实际类型为紧急类型,则将所述紧急类型的计算作业加入紧急作业队列,并基于作业提交时间确定所述紧急类型的计算作业的优先级;在检测到所述实际类型为正常类型,则将所述正常类型的计算作业加入正常作业队列,并基于作业等待时间和预估执行时间确定所述正常类型的计算作业的优先级,其中,所述紧急作业队列的优先级高于所述正常作业队列的优先级。3.根据权利要求2所述的方法,其特征在于,所述正常类型的计算作业的优先级由所述作业等待时间和所述预估执行时间的比值得到,并且所述作业等待时间为当前时间和所述正常类型的计算作业的提交时间的差值得到。4.根据权利要求1所述的方法,其特征在于,所述基于已发布的待接收计算任务,通过预设FPGA资源调度算法进行矩阵分块,分配相应FPGA资源,包括:判断当前任务的网络层类型;如果所述网络层类型为全连接层,则为当前任务分配一块用于执行计算任务的FPGA板卡;如果所述网络层类型为卷积层,则由乘加操作的数量确定需要计算的数据量,并基于所述需要计算的数据量得到最优矩阵分块和资源分配策略;如果所述网络层类型为池化层,则由输入矩阵大小计算总数据量,并基于所述总数据量得到所述最优矩阵分块和资源分配策略。5.根据权利要求1

4任一项所述的方法,其特征在于,已重构相同网络层类型电路的FPGA板卡的分配优先级为最高,且每次同时待执行的计算任务数量小于或等于二。6.一种基于CNN矩阵分块的调度装置,其特征在于,...

【专利技术属性】
技术研发人员:张靖丁路昶蔡畅朱人杰陈更生吴泽昊俞军
申请(专利权)人:复旦大学
类型:发明
国别省市:

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

1