计算系统、硬件加速模块管理方法和装置以及存储介质制造方法及图纸

技术编号:22295275 阅读:12 留言:0更新日期:2019-10-15 04:28
本发明专利技术公开了一种计算系统、硬件加速模块管理方法和管理装置、用于实现该硬件加速模块管理方法的计算设备及存储介质。该计算系统包括:应用层;一个或多个硬件加速模块,用于响应于应用层的调用指令,执行各自预定的计算功能;以及接口层,设置有一个或多个接口,分别用于实现应用层与一个或多个硬件加速模块之间的对接。应用层向接口层发送调用硬件加速模块来执行计算功能的调用指令,接口层基于调用指令,通过对应的接口向用于执行计算功能的硬件加速模块分配计算任务。通过采用根据本发明专利技术的上述技术方案,能够灵活地管理和调度硬件加速模块。

Computing System, Hardware Acceleration Module Management Method and Device and Storage Media

【技术实现步骤摘要】
计算系统、硬件加速模块管理方法和装置以及存储介质
本专利技术涉及计算系统中包含的多个硬件加速器的调度方案,特别涉及一种计算系统、硬件加速模块管理方法和管理装置、用于实现该硬件加速模块管理方法的计算设备及存储介质。
技术介绍
近几年,神经网络与深度学习技术广泛应用于图像处理与语音识别领域,取得了很好的应用效果。与此同时,此类算法对算力的需求也催生了庞大的加速器(或称为“加速模块”、“硬件加速模块”)市场。不管是使用GPU,还是FPGA抑或是ASIC,都是凭借其架构对神经网络算法的友好性来实现比CPU更好的效率。为了使应用能够调用外接的硬件加速模块,需要在应用中添加相应代码,以便向加速模块发送调用指令以及相应数据。这样,加速模块的添加提高了算法和应用开发的难度。进一步地,在实际应用中,可能需要多个加速模块协同工作来达到最优效果。不同的加速模块功能不一、接口不一,使用方式也不一样。当外接多个加速模块时,特别是外接多个不同类型的加速模块时,需要在应用中分别添加多段相应的代码。不同类型或不同功能的加速模块往往需要不同的指令代码或具有数据输入输出格式,因此需要在应用中分别编写添加代码。这对管理和调度提出了挑战。因此,需要一种灵活的管理与调度方法,充分释放加速器的能力并同时保证上层应用接口的易用性。
技术实现思路
本专利技术所要解决的技术问题是提供一种计算系统、硬件加速模块管理方法和管理装置、用于实现该硬件加速模块管理方法的计算设备及存储介质,其能够灵活地管理和调度硬件加速模块。根据本专利技术的第一个方面,提供了一种计算系统,包括:应用层;一个或多个硬件加速模块,用于响应于应用层的调用指令,执行各自预定的计算功能;以及接口层,设置有一个或多个接口,分别用于实现应用层与一个或多个硬件加速模块之间的对接,其中,应用层向接口层发送调用硬件加速模块来执行计算功能的调用指令,接口层基于调用指令,通过对应的接口向用于执行计算功能的硬件加速模块分配计算任务。根据本专利技术的第二个方面,提供了一种用于计算系统的硬件加速模块管理方法,该计算系统包括应用层、接口层和一个或多个硬件加速模块,硬件加速模块用于响应于应用层的调用指令执行各自预定的计算功能。该方法包括:由接口层维护一个或多个接口,一个或多个接口分别用于实现应用层与一个或多个硬件加速模块之间的对接;接口层从应用层接收调用硬件加速模块来执行计算功能的调用指令;以及接口层基于调用指令,通过对应的接口向用于执行计算功能的硬件加速模块分配计算任务。可选地,接口层可以根据调用指令,确定对应于执行计算功能的硬件加速模块的接口,以便通过接口向硬件加速模块分配计算任务。可选地,接口能够与多个执行相同计算功能的同功能硬件加速模块对接,并在多个同功能硬件加速模块之间分配计算任务。可选地,接口层可以针对每个接口分别维护对应的任务队列。可选地,该计算系统还可以包括缓存;应用层可以将执行计算功能所需的输入数据保存到缓存上;硬件加速模块根据为其分配的计算任务,从缓存读取相应的输入数据,并将执行计算功能得到的输出数据写入缓存。可选地,调用指令可以包括输入数据的输入缓存地址和输出数据的指定输出缓存地址。可选地,响应于硬件加速模块被引入计算系统或被激活,接口层可以启动针对硬件加速模块的初始化操作。可选地,响应于为硬件加速模块分配了计算任务,接口层可以触发硬件加速模块开始执行计算功能。可选地,响应于硬件加速模块结束计算功能的执行,接口层可以执行针对硬件加速模块的状态恢复操作。可选地,响应于硬件加速模块被从计算系统卸载或被解除激活,接口层可以执行针对硬件加速模块的清理操作。与同一个接口对接的硬件加速模块属于同一个模块组,可选地,接口层可以响应于添加独立于已有模块组的新硬件加速模块,设置新接口,以用于实现应用层与新硬件加速模块之间的对接。根据本专利技术的第三个方面,还提供了一种用于计算系统的硬件加速模块管理装置,硬件加速模块用于响应于应用层的调用指令执行各自预定的计算功能,该装置包括:接口维护装置,用于维护一个或多个接口,一个或多个接口分别用于实现应用层与一个或多个硬件加速模块之间的对接;指令接收装置,用于从应用层接收调用硬件加速模块来执行计算功能的调用指令;以及模块调用装置,用于基于调用指令,通过对应的接口向用于执行计算功能的硬件加速模块分配计算任务。根据本专利技术的第四个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行根据本专利技术的第二个方面的方法。根据本专利技术的第五个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行本专利技术的第二个方面的方法。基于上述方案,本专利技术的实施例可以具有以下优点:1.针对应用层的接口具有稳定性、易用性,不需要针对硬件加速模块修改接口。2.底层硬件加速硬件具有可扩展性,不论是对应于已有接口的硬件加速模块还是独立于已有接口的硬件加速模块,都可以很方便地添加。3.支持同步/异步等多种使用方式,管理调度有很大的灵活性。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1示意性地示出了本专利技术的根据本专利技术的计算系统。图2是根据本专利技术实施例的硬件加速模块管理方法的示意性流程图。图3是根据本专利技术一个实施例的计算任务调度方案的示意性流程图。图4示意性地示出了根据本专利技术实施例的硬件加速模块操作状态管理模式。图5是根据本专利技术实施例的硬件加速模块管理装置的示意性框图。图6示出了根据本专利技术一实施例可用于实现上述硬件加速模块管理方法的计算设备的示意性框图。具体实施方式下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本专利技术公开了一种添加了多个硬件加速模块的计算系统,例如可以是存在多类别多数量的加速模块的异构多核计算系统。通过有效的管理与调度,使得硬件加速模块可灵活扩展,同时能够对上层应用软件提供易用且稳定的调用接口。图1示意性地示出了本专利技术的根据本专利技术的计算系统。如图1所示,本专利技术的计算系统包括应用层110、接口层130和加速模块层150。应用层110用于实现用户期望的应用方案。用户在应用层110的层面上进行操作。加速模块层150中设置有一个或多个硬件加速模块Acc1、Acc2、……AccN,用于响应于应用层110的调用指令,执行各自预定的计算功能。当设置有多个硬件加速模块时,这些硬件加速模块可以是不同类型的,可以分别用来执行不同的计算功能。接口层130设置有一个或多个接口Call_Acc1、Call_Acc2、……、Call_AccN,分别用于实现应用层110与硬件加速模块之间的对接。根据实现方案的不同,接口Call_Acc1、Call_Acc2、……、Call_AccN可以是软件接口,也可以是硬件接口。应用层110向接口层130发送调用硬件加速模块来执行计算功能的本文档来自技高网...

【技术保护点】
1.一种计算系统,其特征在于,包括:应用层;一个或多个硬件加速模块,用于响应于所述应用层的调用指令,执行各自预定的计算功能;以及接口层,设置有一个或多个接口,分别用于实现所述应用层与所述一个或多个硬件加速模块之间的对接,其中,所述应用层向所述接口层发送调用硬件加速模块来执行计算功能的调用指令,所述接口层基于所述调用指令,通过对应的接口向用于执行所述计算功能的硬件加速模块分配计算任务。

【技术特征摘要】
1.一种计算系统,其特征在于,包括:应用层;一个或多个硬件加速模块,用于响应于所述应用层的调用指令,执行各自预定的计算功能;以及接口层,设置有一个或多个接口,分别用于实现所述应用层与所述一个或多个硬件加速模块之间的对接,其中,所述应用层向所述接口层发送调用硬件加速模块来执行计算功能的调用指令,所述接口层基于所述调用指令,通过对应的接口向用于执行所述计算功能的硬件加速模块分配计算任务。2.根据权利要求1所述的计算系统,其特征在于,所述接口层根据所述调用指令,确定对应于执行所述计算功能的硬件加速模块的接口,以便通过所述接口向所述硬件加速模块分配所述计算任务。3.根据权利要求2所述的计算系统,其特征在于,所述接口能够与多个执行相同计算功能的同功能硬件加速模块对接,并在所述多个同功能硬件加速模块之间分配所述计算任务。4.根据权利要求1至3中任何一项所述的计算系统,其特征在于,所述接口层针对每个接口分别维护对应的任务队列。5.根据权利要求1所述的计算系统,其特征在于,还包括:缓存,所述应用层将执行所述计算功能所需的输入数据保存到所述缓存上,所述硬件加速模块根据为其分配的计算任务,从所述缓存读取相应的输入数据,并将执行所述计算功能得到的输出数据写入所述缓存。6.根据权利要求5所述的计算系统,其特征在于,所述调用指令包括所述输入数据的输入缓存地址和所述输出数据的指定输出缓存地址。7.根据权利要求1所述的计算系统,其特征在于,响应于所述硬件加速模块被引入所述计算系统或被激活,所述接口层启动针对所述硬件加速模块的初始化操作;并且/或者响应于为所述硬件加速模块分配了计算任务,所述接口层触发所述硬件加速模块开始执行所述计算功能;并且/或者响应于所述硬件加速模块结束所述计算功能的执行,所述接口层执行针对所述硬件加速模块的状态恢复操作;并且/或者响应于所述硬件加速模块被从所述计算系统卸载或被解除激活,所述接口层执行针对所述硬件加速模块的清理操作。8.一种用于计算系统的硬件加速模块管理方法,其特征在于,所述计算系统包括应用层、接口层和一个或多个硬件加速模块,所述硬件加速模块用于响应于所述应用层的调用指令执行各自预定的计算功能,该方法包括:由所述接口层维护一个或多个接口,所述一个或多个接口分别用于实现所述应用层与所述一个或多个硬件加速模块之间的对接;所述接口层从所述应用层接收调用所述硬件加速模块来执行计算功能的调用指令;以及所述接口层基于所述调用指令,通过对应的接口向用于执行所述计算功能的硬件加速模块分配计算任务。9.根据权利要求8所述的方法,其特征在于,该方法还包括:所述接口层根据所述调用指令...

【专利技术属性】
技术研发人员:易建龙孙晓明
申请(专利权)人:北京深鉴智能科技有限公司
类型:发明
国别省市:北京,11

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

1