一种异构系统及其加速方法、装置及可读存储介质制造方法及图纸

技术编号:24682062 阅读:79 留言:0更新日期:2020-06-27 07:38
本申请公开了一种异构系统,包括:预加载模块,用于对异构device中的所有异构算子进行预加载;选择模块,用于根据所有所述异构算子的理论消耗,确定最优执行方案;烧录模块,用于加载并烧录所述最优执行方案对应的所述异构算子。本申请利用预加载模块,为异构算子的调用提供了实现基础,可直接通过共享内存空间来完成加载和烧录,不需要内存二次拷贝,在不修改原始程序的前提下完成了异构加速,可应用在加速传统软件领域,为传统软件提供了更多拓展可能。相应的,本申请还公开了一种异构系统的加速方法、装置及可读存储介质。

A heterogeneous system and its acceleration method, device and readable storage medium

【技术实现步骤摘要】
一种异构系统及其加速方法、装置及可读存储介质
本专利技术涉及异构计算领域,特别涉及一种异构系统及其加速方法、装置及可读存储介质。
技术介绍
当前,异构系统各取所长,大大提高系统整体算力,主流的异构系统有“CPU+GPU”,“CPU+FPGA”以及“CPU+ASIC”。这些系统在硬件设计层面充分体现了异构硬件的特点,如相比CPU(centralprocessingunit,中央处理器),GPU(GraphicsProcessingUnit,图形处理器)有更高的并行度、更高的单机计算峰值;FPGA(FieldProgrammableGateArray,现场可编程逻辑门阵列)拥有更高的每瓦性能等;ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)专一职能,每个时间单位都能专注于数据处理或者传输,大大提高了效能。3种主流架构都有自己复杂的开发环境和流程。例如CUDA(ComputeUnifiedDeviceArchitecture,统一计算设备架构),OpenCL等开发框架,这些框架都有环境复杂,开发周期长,门槛高的特点,一般开发者很难充分利用异构性能,难以达到理想效果。也正因此,这些主流架构一般关注在人工智能、数据分析、科学计算、视频图像处理、视频转码等软件开发复杂,开发周期长,全新开发的主流新兴场景,对于传统应用则无法兼顾。传统应用需要通过修改源码,利用相对应的开发框架进行复杂的二次开发,其开发周期长,门槛高,开发完成后续无负载可选择性,导致在加速传统软件领域没有好的应用和突破。因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种提高传统软件领域进行系统加速的异构系统及其加速方法、装置及可读存储介质。其具体方案如下:一种异构系统,包括:预加载模块,用于对异构device中的所有异构算子进行预加载;选择模块,用于根据所有所述异构算子的理论消耗,确定最优执行方案;烧录模块,用于加载并烧录所述最优执行方案对应的所述异构算子。优选的,所述异构系统还包括:记录模块,用于记录所述最优执行方案中每个所述异构算子的实际消耗,并将所述实际消耗反馈至所述选择模块,以使所述选择模块根据所述异构算子的所述实际消耗对应调整所述理论消耗。优选的,所述预加载模块具体用于:通过hook应用程序对所有所述异构算子进行预加载。优选的,所述理论消耗包括理想时间消耗;所述实际消耗包括实际时间消耗。优选的,所述理论消耗还包括理想功率消耗;所述实际消耗还包括实际功率消耗。相应的,本专利技术还公开了一种异构系统的加速方法,包括:对异构device中的所有异构算子进行预加载;根据所有所述异构算子的理论消耗,确定最优执行方案;加载并烧录所述最优执行方案对应的所述异构算子。优选的,所述异构系统的加速方法还包括:记录所述最优执行方案中每个所述异构算子的实际消耗;根据所述异构算子的所述实际消耗对应调整所述理论消耗。优选的,所述对异构device中的所有异构算子进行预加载的过程,具体包括:通过hook应用程序对所有所述异构算子进行预加载。相应的,本专利技术还公开了一种异构系统的加速装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上文任一项所述异构系统的加速方法的步骤。相应的,本专利技术还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述异构系统的加速方法的步骤。本申请公开了一种异构系统,包括:预加载模块,用于对异构device中的所有异构算子进行预加载;选择模块,用于根据所有所述异构算子的理论消耗,确定最优执行方案;烧录模块,用于加载并烧录所述最优执行方案对应的所述异构算子。本申请利用预加载模块,为异构算子的调用提供了实现基础,可直接通过共享内存空间来完成加载和烧录,不需要内存二次拷贝,在不修改原始程序的前提下完成了异构加速,可应用在加速传统软件领域,为传统软件提供了更多拓展可能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例中一种异构系统的结构分布图;图2为本专利技术实施例中一种异构系统的加速方法的步骤流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在应用异构系统时,传统应用需要通过修改源码,利用相对应的开发框架进行复杂的二次开发,其开发周期长,门槛高,开发完成后续无负载可选择性,导致在加速传统软件领域没有好的应用和突破。本申请利用预加载模块,为异构算子的调用提供了实现基础,可直接通过共享内存空间来完成加载和烧录,不需要内存二次拷贝,在不修改原始程序的前提下完成了异构加速,可应用在加速传统软件领域,为传统软件提供了更多拓展可能。本专利技术实施例公开了一种异构系统,参见图1所示,包括:预加载模块01,用于对异构device中的所有异构算子进行预加载;选择模块02,用于根据所有异构算子的理论消耗,确定最优执行方案;烧录模块03,用于加载并烧录最优执行方案对应的异构算子。本申请公开了一种异构系统,包括:预加载模块,用于对异构device中的所有异构算子进行预加载;选择模块,用于根据所有异构算子的理论消耗,确定最优执行方案;烧录模块,用于加载并烧录最优执行方案对应的异构算子。本申请利用预加载模块,为异构算子的调用提供了实现基础,可直接通过共享内存空间来完成加载和烧录,不需要内存二次拷贝,在不修改原始程序的前提下完成了异构加速,可应用在加速传统软件领域,为传统软件提供了更多拓展可能。进一步的,异构系统还包括:记录模块04,用于记录最优执行方案中每个异构算子的实际消耗,并将实际消耗反馈至选择模块02,以使选择模块02根据异构算子的实际消耗对应调整理论消耗。可以理解的是,反馈有助于得到更准确的最优执行方案。进一步的,预加载模块01具体用于:通过hook应用程序对所有异构算子进行预加载。可以理解的是,hook应用程序主要有symbolhook负责,完成算子调用并返回最终结果,symbolhook负责与被加速应用程序的交互,对于被加速应用程序而言,symbolhook属于黑盒,只需本文档来自技高网
...

【技术保护点】
1.一种异构系统,其特征在于,包括:/n预加载模块,用于对异构device中的所有异构算子进行预加载;/n选择模块,用于根据所有所述异构算子的理论消耗,确定最优执行方案;/n烧录模块,用于加载并烧录所述最优执行方案对应的所述异构算子。/n

【技术特征摘要】
1.一种异构系统,其特征在于,包括:
预加载模块,用于对异构device中的所有异构算子进行预加载;
选择模块,用于根据所有所述异构算子的理论消耗,确定最优执行方案;
烧录模块,用于加载并烧录所述最优执行方案对应的所述异构算子。


2.根据权利要求1所述异构系统,其特征在于,还包括:
记录模块,用于记录所述最优执行方案中每个所述异构算子的实际消耗,并将所述实际消耗反馈至所述选择模块,以使所述选择模块根据所述异构算子的所述实际消耗对应调整所述理论消耗。


3.根据权利要求2所述异构系统,其特征在于,所述预加载模块具体用于:
通过hook应用程序对所有所述异构算子进行预加载。


4.根据权利要求1至3任一项所述异构系统,其特征在于,
所述理论消耗包括理想时间消耗;
所述实际消耗包括实际时间消耗。


5.根据权利要求4所述异构系统,其特征在于,
所述理论消耗还包括理想功率消耗;
所述实际消耗还包括实际功率消耗。


6.一种异构...

【专利技术属性】
技术研发人员:庞伟振
申请(专利权)人:浪潮商用机器有限公司
类型:发明
国别省市:山东;37

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

1