当前位置: 首页 > 专利查询>苹果公司专利>正文

多处理器的多维线程分组制造技术

技术编号:7140265 阅读:267 留言:0更新日期:2012-04-11 18:40
本公开描述了一种方法和设备,其响应于来自在主处理单元中运行的应用程序的API(应用编程接口)请求,确定同时执行编译自目标处理单元的单一源的可执行代码的线程的总数。目标处理单元包括GPU(图形处理单元)和CPU(中央处理单元)。确定目标处理单元的线程组大小,以按照包括在API请求中的多维全局线程数,划分线程的总数。载入可执行代码以便在目标处理单元中以具有所确定的线程组大小的线程组同时执行。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及数据并行计算。更具体地,本专利技术涉及跨CPU(中央处理单元)和 GPU(图形处理单元)的线程分组。
技术介绍
随着GPU继续发展成高性能并行计算装置,编写了越来越多的应用程序以在类似 于通用计算装置的GPU中执行数据并行计算。目前,这些应用程序被设计成利用厂家特有 的接口在特定的GPU上运行。从而,即使当在数据处理系统中,既有GPU又有CPU可用时,这 些应用程序也不能利用CPU的处理资源。也不能跨越运行这种应用程序的不同厂家的GPU 来利用处理资源。不过,随着越来越多的CPU包含多个核芯以执行数据并行计算,越来越多的处理 任务可由CPU和/或GPU(只要任一个可用)支持。按照惯例,GPU和CPU是通过彼此不兼 容的独立编程环境来配置的。多数GPU需要厂家特有的专用程序。结果,应用程序很难利 用CPU和GPU两者的处理资源,例如,利用具有数据并行计算能力的GPU以及多芯CPU的处理资源。因此,在现代数据处理系统中,需要克服上述问题,以使应用程序能够通过利用能 够执行任务的任何可用处理资源,诸如CPU和一个或多个GPU,来执行所述任务。
技术实现思路
本专利技术的实施例包括方法和设备,所述方法和设备响应于来自在主处理单元中运 行的应用程序的API (应用编程接口)请求,确定同时执行编译自针对目标处理单元的单一 源的可执行代码的线程的总数。所述目标处理单元包括GPU(图形处理单元)和CPU(中央 处理单元)。确定目标处理单元的线程组大小,以按照包括在API请求中的多维全局线程 数,划分线程的总数。载入可执行代码以便在目标处理单元中以具有所确定的线程组大小 的线程组同时执行。在一个备选实施例中,响应于来自在主处理器中运行的应用程序的API请求,确 定用于执行编译自单一源的可执行代码的一个或多个目标处理单元的线程组大小。所述一 个或多个目标处理单元包括与主处理器耦接、用以并行执行可执行代码的GPU和CPU。按 照供同时执行的线程组大小,把一个或多个可执行代码载入所述一个或多个目标处理单元 中,以优化运行时资源使用。根据附图和下面的详细说明,本专利技术的其它特征将是显而易见的。 附图说明附图中非限制性地举例说明了本专利技术,其中相同的附图标记指示相同的元件,其 中图1是图解说明配置包括CPU和/或GPU的计算装置以便为应用程序执行数据并 行计算的系统的一个实施例的方框图;图2是图解说明具有用以同时执行多个线程的并行操作的多个计算处理器的计 算装置的一个例子的方框图;图3是图解说明利用计算装置标识符的、被配置成一个逻辑计算装置的多个物理 计算装置的一个实施例的方框图;图4是图解说明通过匹配从应用程序接收的能力要求用计算装置标识符配置多 个物理计算装置的处理过程的实施例的流程图;图5是图解说明在逻辑计算装置中执行计算可执行代码的处理过程的实施例的 流程图;图6是图解说明载入可执行代码的运行时处理过程的实施例的流程图,其中包括 编译为执行该可执行代码而确定的一个或多个物理计算装置的源代码;图7是图解说明从执行队列中选择计算内核执行实例以便在和与执行实例相关 的逻辑计算装置对应的一个或多个物理计算装置中执行的处理过程的一个实施例的流程 图;图8是图解说明确定最佳的线程组大小以便在多个计算单元之间同时执行计算 内核对象的处理过程的一个实施例的流程图;图9A是图解说明通过按照多个物理计算装置把一个或多个API的源代码和多个 可执行代码保存在API库中来构建API (应用编程接口)库的处理过程的一个实施例的流 程图;图9B是图解说明应用程序基于API请求执行从API库获取的多个可执行代码之 一连同对应的源代码的处理过程的一个实施例的流程图;图10是图解说明要在多个物理计算装置中执行的计算内核可执行代码的计算内 核源代码的例子的样本源代码;图11A-11C包括图解说明通过调用API来配置在多个物理计算装置中执行多个可 执行代码之一的逻辑计算装置的例子的样本源代码;以及图12图解说明具有可与这里描述的实施例一起使用的多个CPU和GPU (图形处理 单元)的典型计算机系统的一个例子。具体实施例方式这里描述一种用于多处理器上的数据并行计算的方法和设备。在下面的说明中, 陈述了众多的具体细节,以便更透彻地说明本专利技术的实施例。不过,对本领域普通技术人员 来说,显然可在没有这些具体细节的情况下实践本专利技术的实施例。在其它情况下,未详细说 明公知的组件、结构和技术,以避免模糊对本专利技术的理解。说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特 征、结构或特性可被包括在本专利技术的至少一个实施例中。在说明书中的各个地方出现的短 语“在一个实施例中”不一定都指的是同一个实施例。在下面的附图中描述的处理由包含硬件(例如,电路、专用逻辑等)和/或软件 (诸如,在通用计算机系统或专用机器上运行的软件)的处理逻辑执行。尽管下面是利用一 些顺序操作说明所述处理的,但是应认识到这些操作中的一些可按照不同的顺序执行。此 外,一些操作可并行执行,而不是顺序执行。图形处理单元(GPU)是实现高效图形操作,诸如2D、3D图形操作和/或与数字视 频相关功能,的专用图形处理器。GPU可包括执行图形操作——例如绘图处理器(blitter) 操作、纹理映射、多边形渲染、像素阴影和顶点阴影——的专用(可编程)硬件。已知GPU从 帧缓冲器获取数据,并把像素混合在一起,以把图像渲染回到帧缓冲器以便显示。GPU还可 控制帧缓冲器,允许帧缓冲器用于刷新显示器,例如CRT或IXD显示器。CRT或IXD显示器 是要求以至少为20Hz的速率进行刷新(例如,每1/30秒,用来自帧缓冲器的数据刷新显示 器)的短余辉显示器。通常,GPU可从与GPU耦接的CPU获得图形处理任务,以通过显示控 制器向显示装置输出光栅图形图像。说明书中对“GPU”的引用可以是如在Lindholdm等人 W^H^^jNo. 7015913,"Method and Apparatus forMultitheraded Processing of Data In a Programmable GraphicsProcessor,,,禾口 Swan 等人的美国专利 No. 6970206,"Method forDeinterlacing Interlaced Video by A Graphics Processor,,中描述的图形处理器或 可编程图形处理器,这两件美国专利在此引为参考。在一个实施例中,多个不同类型的处理器,诸如CPU或GPU可同时执行一个或多个 应用程序的数据并行处理任务,以提高数据处理系统中的可用处理资源的利用效率。数据 处理系统的处理资源可基于多个物理计算装置,诸如CPU或GPU。物理计算装置可包括一个 或多个计算单元。在一个实施例中,数据并行处理任务(或者数据并行任务)可被委托给 多种类型的处理器,例如能够执行所述任务的CPU或GPU。数据并行任务可能向处理器要求 某些特定的处理能力。例如,处理能力可以是专用纹理化硬件支持,双精度浮点运算,专用 局部存储器,流式数据高速缓存或者同步原语。不同类型的处理器可提供不同然而重叠的 多组处理能力。例如,CPU和GPU都能够执行双精度本文档来自技高网...

【技术保护点】
一种计算机实现的方法,包括:  响应于来自在主处理单元中运行的应用程序的API(应用编程接口)请求,确定同时执行编译自针对一个或多个目标处理单元的单一源的一个或多个可执行代码的线程的总数,所述API请求包括具有多维值的全局线程数;  为所述一个或多个目标处理单元中的特定目标处理单元确定线程组大小,以按照全局线程数划分线程的总数;和  载入所述一个或多个可执行代码中的特定可执行代码,以便在所述特定目标处理单元中以线程组大小的线程组同时执行。

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

【专利技术属性】
技术研发人员:A·A·芒史
申请(专利权)人:苹果公司
类型:发明
国别省市:US

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

1