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

多处理器上的并行运行时执行制造技术

技术编号:4549041 阅读:207 留言:0更新日期:2012-04-11 18:40
公开了对调度队列中的多个可执行体进行调度以在诸如CPU或GPU之类的一个或多个物理计算装置中并发地执行的方法和设备。针对与所述一个或多个物理计算装置不同的一种类型的物理计算装置,从具有现有可执行体的源在线编译一个或多个可执行体。判断与所调度的可执行体相应的元素之间的依赖关系来选择在多于一个的物理计算装置中通过多个线程所要并发地执行的可执行体。如果GPU忙于图形处理线程,则被初始化用于在物理计算装置的GPU中执行可执行体的线程被初始化用于在物理计算装置中的另一CPU中的执行。API函数的现有可执行体和源被存储在API库中,以在多个物理计算装置中执行包括现有可执行体和从源在线编译出的可执行体在内的多个可执行体。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般地涉及数据并行计算,更具体而言,本专利技术涉及跨CPU(中央处理单 元)和GPU(图形处理单元)两者的数据并行运行时执行。
技术介绍
随着GPU继续演进成高性能并行计算装置,越来越多的应用被写入以在与通用 计算装置类似的GPU中执行数据并行计算。如今,这些应用被设计成在使用供应商特定 接口的特定GPU上运行。因此,它们既不能在数据处理系统具有GPU和CPU两者时平衡 (leverage) CPU,也不能在这样的应用正运行在来自不同供应商的GPU上时被平衡。然而,随着越来越多的CPU包括多个核心来执行数据并行模型的计算,通过可用 的CPU和/或GPU的任一者可以支持越来越多的处理任务。传统上,GPU和CPU是通过相 互不兼容的分开的编程环境来配置的。大多数GPU需要供应商特定的专用程序。结果,应 用很难在处理资源方面平衡CPU和GPU两者,例如具有数据并行计算能力的GPU连同多核 CPU。因此,需要现代的数据处理系统来克服以上问题以允许应用在能够执行任务的任 何可用处理资源(例如CPU或一个或多个GPU)中执行该任务。
技术实现思路
本专利技术的一个实施例包括响应于来自主处理单元中运行的应用的API请求,加载 用于该应用的数据处理任务的一个或多个可执行体的方法和设备。响应于来自该应用的另 一API请求,所加载的可执行体中的一个被选择以在附接到该主处理单元的诸如CPU或GPU 之类的另一处理单元中被执行。在一个可替换实施例中,主处理单元中运行的应用程序生成API请求,以用来加 载用于数据处理任务的一个或多个可执行体。然后,由该应用程序生成第二 API,用来选择 所加载的可执行体中的一个以用于在附接到该主处理单元的诸如CPU或GPU之类的另一处 理单元中执行。在一个可替换实施例中,用于目标处理单元的源在运行时期间基于加载到处理单 元的可执行体被编译。处理单元和目标处理单元可以是中央处理单元(CPU)或图形处理单 元(GPU)。处理单元和目标处理单元之间的差异被检测以从所加载的可执行体取出源。在一个可替换实施例中,响应于来自应用的API请求,利用包括多个可执行体的 新任务来更新与诸如CPU或GPU之类的多个处理单元相关联的任务队列。判断对在多个处 理单元中执行来自队列的新任务进行调度的条件。基于所判断出的条件,选择与新任务相 关联的多个可执行体中的一个以用于执行。在一个可替换实施例中,响应于来自应用的API请求,从该应用加载用于执行数据处理功能的源,以在诸如CPU或GPU之类的多个目标数据处理单元的一个或多个中执行 可执行体。自动确定多种类型的目标数据处理单元。基于目标处理单元的一个或多个中所 要执行的所确定的类型来编译可执行体。在一个可替换实施例中,源和针对多个处理单元编译出的一个或多个相应的可执 行体被存储在API库中来实现API函数。响应于从主处理器(host processor)中运行的 应用对API库的请求,从API库中取出该源和该API函数的一个或多个相应可执行体。针 对这多个单元中未包括的附加处理单元,从所取出的源在线编译出附加可执行体。根据API 函数,在附加处理单元中和一个或多个处理单元中一起并发地执行附加可执行体和一个或 多个所取出的可执行体。在一个可替换实施例中,在主处理器上接收API调用来执行应用,该应用具有多 个用于执行的线程。主处理器耦合CPU和GPU。这多个线程被异步调度以用于CPU和GPU 上的并行执行。如果GPU忙于图形处理线程,则被调度要在GPU上执行的线程可以在CPU 中被执行。在一个可替换实施例中,在主处理器上接收API调用来执行应用,该应用具有多 个用于执行的线程。主处理器耦合到CPU和GPU。这多个线程被异步初始化以用于CPU和 GPU上的并行执行。如果GPU忙于图形处理线程,则被初始化要在GPU上执行的线程可以在 CPU中被执行。从附图和以下详细描述中,本专利技术的其他特征将显而易见。 附图说明在附图的示图中通过示例而非限制来图示本专利技术,相似的标号表示相似的元素, 附图中图1是图示出用于配置包括CPU和/或GPU的计算装置来执行应用的数据并行计 算的系统的一个实施例的框图;图2是图示出具有多个并行操作来并发地执行多个线程的计算处理器的计算装 置的示例的框图;图3是图示出经由计算装置标识符被配置为逻辑计算装置的多个物理计算装置 的一个实施例的框图;图4是图示出通过匹配从应用接收到的能力需求来利用计算装置标识符配置多 个物理计算装置的处理的一个实施例的流程图;图5是图示出在逻辑计算装置中执行计算可执行体的处理的一个实施例的流程 图;图6是图示出加载可执行体的运行时处理的一个实施例的流程图,该处理包括针 对被确定来执行该可执行体的一个或多个物理计算装置来编译源;图7是图示出从执行队列中选择计算内核执行实例以在与和该执行实例相关联 的逻辑计算装置相对应的一个或多个物理计算装置中执行的处理的一个实施例的流程 图;图8A是图示出建立API (应用编程接口 )库的处理的一个实施例的流程图,该处 理根据多个物理计算装置将用于一个或多个API的多个可执行体和源存储在库中;图8B是图示出应用执行多个可执行体中的一个和基于API请求从API库所取出 的相应源的处理的一个实施例的流程图;图9是图示出多个物理计算装置中所要执行的计算内核可执行体的计算内核源 的示例的样本源代码;图10是图示出通过调用API来配置用于在多个物理计算装置中执行多个可执行 体中的一个的逻辑计算装置的示例的样本源代码;图11图示出可以与在此所述的实施例结合使用的、具有多个CPU和GPU(图形处 理单元)的典型计算机系统的一个示例。具体实施例方式在此描述用于多处理器上的数据并行计算的方法和设备。在以下描述中,阐述了 大量特定细节以提供对本专利技术实施例的透彻说明。然而,对于本领域技术人员显而易见的 是,可以实行本专利技术实施例而不用这些特定细节。在其它实例中,没有详细示出公知的组 件、结构和技术以免使对本描述的理解模糊。在说明书中,提及“一个实施例,,或“实施例,,意味着结合该实施例描述的具体特 征、结构或特征可以包括在本专利技术的至少一个实施例中。在说明书中的各个地方出现的短 语“在一个实施例中,,不一定涉及同一个实施例。通过包括硬件(例如,电路、专用逻辑等)、软件(例如在通用计算机系统或专用机 器上运行的软件)或这两者的组合的处理逻辑来执行以下示图中所描述的处理。尽管以下 根据某些顺序操作来描述处理,但是应当明白,可以以不同的顺序来执行所述操作中的某 些操作。并且,可以并行地而不是顺序地执行某些操作。图形处理单元(GPU)可以是执行诸如2D、3D图形操作之类的高效图形操作和/ 或数字视频相关功能的专用图形处理器。GPU可以包括用来执行诸如位块传输(blitter) 操作、纹理映射、多边形渲染(rendering)、像素着色(shading)和顶点着色之类的图形操 作的专门的(可编程的)硬件。已知GPU从帧缓冲器中获取数据并且将像素混合到一起 来将图像背景渲染到该帧缓冲器中以用于显示。GPU还可以控制该帧缓冲器并且允许该 帧缓冲器被用来刷新诸如CRT或LCD显示器之类的显示器,CRT或LCD显示器是需要至 少20Hz本文档来自技高网...

【技术保护点】
一种计算机实现的方法,包括:响应于来自在第一处理单元中运行的应用程序的第一API请求,加载用于所述应用程序的数据处理任务的一个或多个可执行体;以及响应于来自所述应用程序的第二API请求,为第二处理单元选择所述一个或多个可执行体中的一个可执行体。

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

【专利技术属性】
技术研发人员:阿夫泰伯穆恩史杰里米萨德梅尔
申请(专利权)人:苹果公司
类型:发明
国别省市:US[美国]

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

1