[发明专利]用于在多处理器上进行数据并行计算的应用编程接口有效
申请号: | 200980128250.0 | 申请日: | 2009-04-20 |
公开(公告)号: | CN102099788A | 公开(公告)日: | 2011-06-15 |
发明(设计)人: | N·比奇曼;A·A·芒希 | 申请(专利权)人: | 苹果公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 鲍进 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 处理器 进行 数据 并行 计算 应用 编程 接口 | ||
相关申请的交叉引用
本申请涉及以下申请并且要求其权益:Aaftab A.Munshi等人于2008年6月6日提交的标题为“Application Programming Interfaces forData Parallel Computing on Multiple Processors”、申请号为61/059,739的美国临时专利申请,其全部内容通过引用合并于此。
技术领域
本发明一般涉及数据并行计算。更具体地,本发明涉及用于跨CPU(中央处理单元)和GPU(图形处理单元)进行数据并行计算的应用编程接口(API)。
背景技术
随着GPU继续发展成高性能并行计算装置,编写了越来越多的应用程序以在类似于通用计算装置的GPU中执行数据并行计算。目前,这些应用程序被设计成利用厂家特有的接口在特定的GPU上运行。从而,即使当在数据处理系统中,既有GPU又有CPU可用时,这些应用程序也不能利用CPU的处理资源。也不能跨越运行这种应用程序的不同厂家的GPU来利用处理资源。
不过,随着越来越多的CPU包含多个核芯以执行数据并行计算,越来越多的处理任务可由CPU和/或GPU(只要任一个可用)支持。按照惯例,GPU和CPU是通过彼此不兼容的独立编程环境来配置的。多数GPU需要厂家特有的专用程序。结果,应用程序很难利用CPU和GPU两者的处理资源,例如,利用具有数据并行计算能力的GPU以及多芯CPU的处理资源。
因此,在现代数据处理系统中,需要克服上述问题,以使应用程序能够通过利用能够执行任务的任何可用处理资源,诸如CPU和一个或多个GPU,来执行所述任务。
发明内容
本发明的实施例包括用于调用主处理器中的API以在计算单元之间并行执行数据处理任务的并行计算程序的方法和设备,所述计算单元包括耦接到主处理器的GPU(图形处理单元)和CPU(中央处理单元)。按照API调用在耦接到主处理器的存储器中产生与数据处理任务的源代码相对应的程序对象。按照API调用由程序对象产生针对计算单元的可执行代码以便载入以在计算单元之间同时执行从而执行数据处理任务。
根据附图和下面的详细说明,本发明的其它特征将是显而易见的。
附图说明
附图中非限制性地举例说明了本发明,其中相同的附图标记指示相同的元件,其中:
图1是图解说明配置包括CPU和/或GPU的计算装置以便为应用程序执行数据并行计算的系统的一个实施例的方框图;
图2是图解说明具有用以同时执行多个线程的并行操作的多个计算处理器的计算装置的一个例子的方框图;
图3是图解说明利用计算装置标识符的、被配置成一个逻辑计算装置的多个物理计算装置的一个实施例的方框图;
图4是图解说明通过匹配从应用程序接收的能力要求用计算装置标识符配置多个物理计算装置的处理过程的实施例的流程图;
图5是图解说明在逻辑计算装置中执行计算可执行代码的处理过程的实施例的流程图;
图6是图解说明载入可执行代码的运行时处理过程的实施例的流程图,其中包括编译为执行该可执行代码而确定的一个或多个物理计算装置的源代码;
图7是图解说明从执行队列中选择计算内核执行实例以便在和与执行实例相关的逻辑计算装置对应的一个或多个物理计算装置中执行的处理过程的一个实施例的流程图;
图8是图解说明确定最佳的线程组大小以便在多个计算单元之间同时执行计算内核对象的处理过程的一个实施例的流程图;
图9A是图解说明通过按照多个物理计算装置把一个或多个API的源代码和多个可执行代码保存在API库中来构建API(应用编程接口)库的处理过程的一个实施例的流程图;
图9B是图解说明应用程序基于API请求执行从API库获取的多个可执行代码之一连同对应的源代码的处理过程的一个实施例的流程图;
图10是图解说明要在多个物理计算装置中执行的计算内核可执行代码的计算内核源代码的例子的样本源代码;
图11A-11C包括图解说明通过调用API来配置在多个物理计算装置中执行多个可执行代码之一的逻辑计算装置的例子的样本源代码;以及
图12图解说明具有可与这里描述的实施例一起使用的多个CPU和GPU(图形处理单元)的典型计算机系统的一个例子。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980128250.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种无线智能识别管理装置和系统
- 下一篇:沉降槽在线泥层高度检测仪
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置