在计算平台中分布工作负荷制造技术

技术编号:8456843 阅读:189 留言:0更新日期:2013-03-22 08:57
公开与在处理器之间分布工作负荷相关的技术。在一个实施例中,计算机系统包括第一处理器和第二处理器。所述第一处理器执行程序指令以接收指定第一组任务的第一组字节代码并确定是否要将所述第一组任务卸载到所述第二处理器。响应于确定要将所述第一组任务卸载到所述第二处理器,所述程序指令还可执行以促使生成用来执行所述第一组任务的一组指令,其中该组指令采用与所述第一组字节代码的格式不同的格式,并且其中所述第二处理器支持该格式。所述程序指令还可执行以通过促使将该组指令提供到所述第二处理器来促使所述第二处理器执行该组指令。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术公开涉及计算机处理器,更确切地来说,涉及在处理器之间分布工作负荷。
技术介绍
为了提高计算性能,现代处理器实现多种技术来并发地执行任务。例如,常常对处理器实现管线化和/或多线程。许多处理器还包括多核以进一步提高性能。此外,可以将多个处理器与单个计算机系统包括在一起。可以将这些处理器的其中一些专用于各种任务,如图形处理器、数字信号处理器(DSP)等。在所有这些不同资源之间分布工作负荷可能成问题,尤其是当资源具有不同接口(例如,具有用于第一处理器的第一格式的代码可能无法用于与第二处理器实现接口,因为第二处理器需要具有第二不同格式的代码)时。希望在此类异构计算平台内使用多种资源的开发者因此必须常常编写包含针对每种资源的特定支持的软件。因此,开发了若干“域相关的”(domain-specific)语言,以使程序员能够编写可帮助跨异构计算平台分布任务的软件。此类语言包括OPENCL、CUDA、DIRECT COMPUTE等。然而,使用这些语言可能是繁琐的。
技术实现思路
公开用于自动地在处理器之间分布工作负荷的多种实施例。在一个实施例中,一种计算机可读存储介质其上存储有程序指令,这些程序指令可在计算机系统的第一处理器上执行以便执行接收第一组字节代码,其中该第一组字节代码指定第一组任务。这些程序指令还可执行以执行响应于确定要将第一组任务卸载到计算机系统的第二处理器而促使用来执行第一组任务的一组指令的生成。该组指令采用与第一组字节代码的格式不同的格式,其中该格式被第二处理器支持。这些程序指令还可执行以执行促使该组指令被提供到第二处理器以供执行。在一个实施例中,计算机可读存储介质包括源程序指令,这些源程序指令可被编译器编译以作为已编译源代码包含在已编译代码中。这些源程序指令包括对库例行程序的应用编程接口(API)调用,其中该API调用指定一组任务。该库例行程序可被编译器编译以便作为已编译库例行程序包括在已编译代码中。已编译源代码可被计算系统的第一处理器的虚拟机解释以将该组任务传递到已编译库例行程序。已编译库例行程序可被该虚拟机解释以响应于确定要将该组任务卸载到计算机系统的第二处理器而促使生成采用第二处理器的域相关语言格式的一组域相关指令,并促使该组域相关指令被提供到第二处理器。在一个实施例中,计算机可读存储介质包括库例行程序的源程序指令,这些源程序指令可被编译器编译以作为已编译库例行程序包含在已编译代码中。该已编译库例行程序可在计算机系统的第一处理器上执行以执行接收第一组字节代码,其中该第一组字节代码指定一组任务。已编译库例行程序还可执行以执行响应于确定要将该组任务卸载到计算机系统的第二处理器而生成一组域相关指令来执行该组任务,并促使这些域相关指令被提供到第二处理器以供执行。在一个实施例中,一种方法包括接收第一组指令,其中该第一组指令指定一组任务,并且其中接收由在计算机系统的第一处理器上执行的库例行程序来执行。该方法还包括库例行程序确定是否要将该组任务卸载到计算机系统的第二处理器。该方法还包括响应于确定要将该组任务卸载到第二处理器而促使生成用于执行第一组任务的第二组指令,其中该第二组指令采用与第一组指令的格式不同的格式,其中该格式被第二处理器支持,以及促使第二组指令被提供到第二处理器以供执行。在一个实施例中,一种方法包括计算机系统接收指定一组任务的第一组字节代码。该方法还包括计算机系统响应于确定要将该组任务从计算机系统的第一处理器卸载到计算机系统的第二处理器而生成用于执行该组任务的一组域相关指令。该方法还包括计算机系统促使这些域相关指令被提供到第二处理器以供执行。·附图说明图I是图示配置成将字节代码转换到域相关语言的异构计算平台的一个实施例的框图。图2是图示可执行以运行可并行处理的指定任务的模块的一个实施例的框图。图3是图示提供域相关语言支持的驱动程序的一个实施例的框图。图4是图示可执行以并行地运行指定任务的模块的确定单元的一个实施例的框图。图5是图示可执行以并行地运行指定任务的模块的优化单元的一个实施例的框图。图6是图示可执行以并行地运行指定任务的模块的转换单元的一个实施例的框图。图7是图示用于在计算平台中自动地部署工作负荷的方法的一个实施例的流程图。图8是图示用于在计算平台中自动地部署工作负荷的方法的另一个实施例的流程图。图9是图示程序指令的示范编译的一个实施例的框图。图10是图示示范计算机系统的一个实施例的框图。图11是图示示范计算机可读存储介质的实施例的框图。具体实施例方式本说明书包括对“一个实施例”或“实施例”的引述。本说明书中出现的短语“在一个实施例中”或“在实施例中”不一定指同一实施例。可以与本专利技术公开一致的任何适合方式将特定的特征、结构或特性进行组合。术语。以下段落提供本专利技术公开(包括权利要求书)中出现的术语的定义和/或语境。“包括/包含”。此术语是开放性的。正如所附权利要求中所使用的,此术语不排除另外的结构或步骤。考虑权利要求,其列举“一种装置,其包括一个或多个处理器单元…”此类权利要求不排除该装置包括另外的组件(例如,网络接口单元、图形电路等)。“配置成”。可以将多种单元、电路或其他组件描述为或要求权利为“配置成”执行一个或多个任务。在此类语境中,“配置成”用于通过指示单元/电路/组件包括在操作期间执行这些一个或多个任务的结构(例如电路)来暗含结构。因此,即使指定的单元/电路/组件当前未工作(例如,未开启),仍可以说单元/电路/组件配置成执行该任务。与“配置成”语言一起使用的单元/电路/组件包括硬件-例如,电路、存储可执行以执行操作的程序指令的存储器等。列举单元/电路/组件“配置成”执行一个或多个任务显性地意味着不对该单元/电路/组件援用35U. S. C. § 112,第六段。此外,“配置成”还可以包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操控以通过能够执行涉及的任务的方式工作的通用结构(例如,通用电路)。“可执行”。正如本文所使用的,此术语不仅是指采用与特定和处理器关联的格式的指令(例如,对于该处理器的指令集体系结构(ISA)是可执行或可在从文件转换的存储器序列执行的文件格式,其中该转换是从一个平台到另一个平台而不将文件写入到另一个平台),而且还指采用能够被控制程序(例如,JAVA虚拟机)解释以产生用于该处理器的ISA的指令的中间(即,非源代码)格式。因此,术语“可执行”涵盖如本文使用的术语“可解释”。但是,当称处理器称“执行”或“运行”程序或指令时,此术语用于实际表示在ISA内执行一 组指令的操作以生成任何相关结果(例如,发布、解码、执行和完成该组指令-该术语不限于例如处理器的管线的“执行”阶段)。“异构计算平台”。此术语具有本领域中的常规且公认的含义,并且包括含不同类型的计算单元的系统,这些不同类型的通信单元诸如,通用处理器(GPP)、专用处理器(SP,数字信号处理器(DSP)或图形处理单元(GPU))、协处理器或定制加速逻辑(专用集成电路(ASIC)、可现场编程门阵列(FPGA)等。“字节代码”。正如本文所使用的,此术语广义地指已编译源代码的机器可读表示。在一些实例中,字节代码可以在不进行任何修改的情况下由处理器执行。在其他实例中,字节代码可以由如解释本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:加里·R·弗罗斯特
申请(专利权)人:超威半导体公司
类型:
国别省市:

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

1