多处理器计算平台中的处理器间通信技术制造技术

技术编号:8702019 阅读:157 留言:0更新日期:2013-05-15 13:43
本发明专利技术描述可用于多处理器计算平台内的通信技术。在一些实例中,所述技术可提供可用于在使用命令队列起始任务的多处理器计算平台内支持消息传递的软件接口。在额外的实例中,所述技术可提供可用于多处理器计算平台内的共享存储器处理器间通信的软件接口。在进一步的实例中,所述技术可提供图形处理单元GPU,所述图形处理单元包含用于支持所述GPU与主机CPU之间的消息传递和/或共享存储器通信的硬件。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算平台,且更特定来说,涉及包含多个处理器的计算平台。
技术介绍
包含多个处理器的计算平台用于提高具有高计算密集要求和/或高数据处理量要求的应用的性能。多处理器计算平台可包含可充当主机装置的通用中央处理单元(CPU)以及主机CPU可用来卸载计算密集型任务的性能的一个或一个以上计算装置,进而提高整个系统的性能。在一些情况下,所述一个或一个以上计算装置可经特别设计以比主机CPU更高效地处理某些类型的任务,其可提供对整个系统的进一步的性能改进。举例来说,所述一个或一个以上计算装置可经特别设计以比主机CPU更高效地执行平行算法。可用于多处理器计算系统中的一种类型的计算装置是图形处理单元(GPU)。传统上,GPU包含固定功能硬件,其经特别设计以用于向显示装置实时地再现三维(3D)图形,但是通常不可编程,即,不可将经编译的程序下载到GPU并在GPU上执行。然而,近来,随着可编程着色器单元的发展,大多数GPU架构已经转变为可编程架构,所述可编程架构包含许多并行的处理元件。所述可编程架构允许GPU促进不仅仅是图形操作的执行,而且促进以高度并行的方式执行通用计算任务。使用GPU来执行通用非图形专有计算任务可在本文中被称作图形处理单元上的通用计算(GPGPU),或者被称作GPU计算。在一些情况下,GPU可使并非图形专有的应用编程接口(API)可用,进而减轻对GPU的编程以用于执行通用计算任务。GPU计算任务可包含计算密集的任务和/或包含高度并行的任务,例如矩阵计算、信号处理计算、统计算法、分子模型化应用、财务应用、医疗成像、密码分析应用等。GPU是可用于多处理器计算平台中的仅一种类型的计算装置,且可使用其它类型的计算装置来补充或取代GPU。举例来说,可用于多处理器计算平台中的其它类型的计算装置包含(例如)额外的CPU、数字信号处理器(DSP)、小区宽带引擎(Cell/BE)处理器,或任何其它类型的处理单元。具有多个计算装置的多处理器计算平台可为同类平台或异类平台。在同类平台中,所有计算装置共享共同指令集架构(ISA)。相比而言,异类平台可包含具有不同ISA的两个或两个以上计算装置。一般来说,不同类型的计算装置可具有不同的ISA,且相同类型的不同品牌的计算装置也可具有不同的ISA。可通过利用多核计算装置和/或众核计算装置来进一步改进多处理器计算平台的性能。多核计算装置的一实例是上文所描述的GPU,其含有具有多个处理核心的可编程着色器单元。然而,CPU还可经设计以包含多个处理核心。一般来说,可将包含多个处理核心的任何芯片或裸片视为多核处理器。处理核心可指代能够对特定块数据执行指令的处理单元。举例来说,可将GPU内的单一算法逻辑单元(ALU)单元或向量处理器视为处理核心。众核处理器一般指代具有相对大量的核心的多核处理器,例如大于十个核心,且通常使用与用于设计具有少量核心的多核处理器的技术不同的技术来设计。多核处理器通过允许在单一芯片上在多个核心上并行地(例如,同时地)执行软件程序来提供性能改进。并行编程模型指代经设计以允许在多个处理核心上同时地执行程序的编程模型。所述程序可为多线程程序,在这种情况下,单一线程可操作于每一处理核心上。在一些实例中,单一计算装置可包含用于执行程序的所有处理核心。在其它实例中,用于执行程序的一些处理核心可位于相同类型或不同类型的不同计算装置上。可使用跨平台、跨供应商、异类计算平台、并行编程模型应用编程接口(API)开提供共同语言规范,以用于对包含由实施不同ISA的不同供应商可能制成的不同类型的计算装置的异类多核计算平台进行并行编程。开放计算语言(OpenCL )是跨平台、跨供应商、异类计算平台、并行编程API的一实例。此类API可经设计以允许GPU上的更一般化的数据处理。举例来说,除了经由计算语言暴露经扩展的着色器子系统能力之外,这些API可以非图形专有的方式将数据流和控制路径一般化到GPU中。然而,目前,由此类API提供的指令集是基于GPU的硬件架构,且因此受限于与现有GPU架构相容的功能性。
技术实现思路
本专利技术描述可用于多处理器计算平台内的通信技术。在一些实例中,所述技术可提供软件接口,所述软件接口可用于支持在使用命令队列起始任务的多处理器计算平台内的消息传递。在额外的实例中,所述技术可提供软件接口,所述软件接口可用于多处理器计算平台内的共享存储器处理器间通信。在进一步的实例中,所述技术可提供图形处理单元GPU,所述图形处理单元包含用于支持所述GPU与主机CPU之间的消息传递和/或共享存储器通信的硬件。 在一个实例中,本专利技术描述一种包含一个或一个以上处理器的主机装置。所述装置进一步包含命令队列接口,所述命令队列接口在一个或一个以上处理器上执行且经配置以响应于从在主机装置上执行的进程接收到一个或一个以上排队指令而将多个命令置于命令队列中。所述多个命令包含第一命令,所述第一命令指令所述主机装置在与所述主机装置相关联的第一存储器空间与和图形处理单元(GPU)相关联的第二存储器空间之间传送数据。所述多个命令进一步包含第二命令,所述第二命令指令所述主机装置起始GPU上的任务的执行。所述装置进一步包含消息传递接口,所述消息传递接口在一个或一个以上处理器上执行且经配置以在于GPU上执行的任务正在GPU上执行时且响应于从在主机装置上执行的进程接收到一个或一个以上消息传递指令而在于所述主机装置上执行的进程与所述任务之间传递一个或一个以上消息。在另一实例中,本专利技术描述一种方法,所述方法包含响应于从在主机装置上执行的进程接收到一个或一个以上排队指令而用在主机装置的一个或一个以上处理器上执行的命令队列接口将多个命令放置到命令队列中。所述多个命令包含第一命令,所述第一命令指令所述主机装置在与所述主机装置相关联的第一存储器空间与和图形处理单元(GPU)相关联的第二存储器空间之间传送数据。所述多个命令进一步包含第二命令,所述第二命令指令所述主机装置起始GPU上的任务的执行。所述方法进一步包含在于GPU上执行的任务正在GPU上执行时且响应于从在主机装置上执行的进程接收到一个或一个以上消息传递指令而用在主机装置的一个或一个以上处理器上执行的消息传递接口在于所述主机装置上执行的进程与所述任务之间传递一个或一个以上消息。在另一实例中,本专利技术描述一种设备,所述设备包含用于响应于从在主机装置上执行的进程接收到一个或一个以上排队指令而将多个命令放置到命令队列中的装置。所述多个命令包含第一命令,所述第一命令指令所述主机装置在与所述主机装置相关联的第一存储器空间与和图形处理单元(GPU)相关联的第二存储器空间之间传送数据。所述多个命令进一步包含第二命令,所述第二命令指令所述主机装置起始GPU上的任务的执行。所述设备进一步包含在于GPU上执行的任务正在GPU上执行时且响应于从在主机装置上执行的进程接收到一个或一个以上消息传递指令而在于所述主机装置上执行的进程与所述任务之间传递一个或一个以上消息的装置。在另一实例中,本专利技术描述一种包含指令的计算机可读存储媒体,所述指令致使一个或一个以上处理器响应于从在主机装置上执行的进程接收到一个或一个以上排队指令而将多个命令放置到命令队列中。所述多个命令包含第一命令,所述第一命令指令所述本文档来自技高网
...

【技术保护点】
一种主机装置,其包括:一个或一个以上处理器;命令队列接口,其在所述一个或一个以上处理器上执行且经配置以响应于从在所述主机装置上执行的进程接收到一个或一个以上排队指令而将多个命令放置到命令队列中,所述多个命令包含第一命令,所述第一命令指令所述主机装置在与所述主机装置相关联的第一存储器空间与和图形处理单元GPU相关联的第二存储器空间之间传送数据,所述多个命令进一步包含第二命令,所述第二命令指令所述主机装置起始所述GPU上的任务的执行;以及消息传递接口,其在所述一个或一个以上处理器上执行且经配置以在所述GPU上执行的任务正在所述GPU上执行时且响应于从在所述主机装置上执行的所述进程接收到一个或一个以上消息传递指令而在所述主机装置上执行的所述进程与所述任务之间传递一个或一个以上消息。

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

【专利技术属性】
技术研发人员:阿列克谢·V·布尔德科林·克里斯托弗·夏普戴维·里赫尔·加西亚加西亚张弛红
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

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

1