[发明专利]共享虚拟存储器有效
申请号: | 200980154460.7 | 申请日: | 2009-11-05 |
公开(公告)号: | CN102625934A | 公开(公告)日: | 2012-08-01 |
发明(设计)人: | H·陈;Y·高;周小成;S·闫;P·张;J·方;A·孟德尔森;B·萨哈;莫罕·拉贾戈帕兰 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F15/167 | 分类号: | G06F15/167;G06F9/46;G06F13/14 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 毛力 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 共享 虚拟 存储器 | ||
背景技术
这通常涉及共享虚拟存储器实施方式。
计算工业正在朝向多样性的平台体系结构发展,该平台体系结构由通用CPU以及作为分离设备或集成设备而附连的可编程GPU所构成。这些GPU通过连续或非连续互连来连接,具有不同的工业标准体系结构(ISA)并可使用它们自己的操作系统。
由通用处理器(CPU)以及图形处理器(GPU)的组合所组成的计算平台已经无处不在,特别是在客户机计算空间中。如今,几乎所有桌面和笔记本平台都载有一个或多个CPU以及集成或分离的GPU。例如,一些平台具有与集成图形芯片组成对的处理器,而其余的使用通过诸如PCI-Express之类的接口连接的分离图形处理器。一些平台载有CPU和GPU的组合。例如,它们中的一些包括更为集成的CPU-GPU平台,而其他的包括图形处理器以补偿集成GPU供给。
这些CPU-GPU平台可提供在图形处理、医疗成像、数据挖掘、以及其他领域的非图形工作负载上的极大的性能提升。大量的数据并行GPU可被用于获取代码的高度并行部分上的高吞吐量。多样性的CPU-GPU平台可具有多个独特的体系结构约束,诸如:
●GPU可以集成和分离的方式连接。例如,一些图形处理器与芯片组集成。另一方面,其他当前的GPU以分离方式通过诸如PCI-Express之类的接口附连。虽然硬件可提供CPU和集成图形处理器之间的缓存一致性,但是对分离的GPU却很难如此。系统也可具有混合配置,其中低功率低性能GPU与CPU集成,且具有更高性能的分离GPU。最终,平台也可具有多个GPU卡。
●CPU和GPU可具有不同的操作系统。例如,处理器可具有它自己的操作系统内核。这意味着虚拟存储器翻译机制在CPU和GPU之间可能是不同的。相同的虚拟地址可能被通过CPU和GPU上的两个不同的页表被同时映射到两个不同的物理地址。这也意味着系统环境(加载器、链接器、等等)在CPU和GPU之间可以是不同的。例如,加载器可将应用加载在CPU和GPU上的不同基地址。
●CPU和GPU可具有不同的ISA,并因此相同的代码可能无法在两个处理器上运行。
附图简述
图1是根据一个实施例的CPU-GPU存储器模型的图示。
图2是用于增加了所有权权限的共享存储器模型的一个实施例的流程图。
图3是共享存储器模型的一个实施例的流程图。
图4是利用PCI开口的共享存储器模型的一个实施例的流程图。
图5是利用PCI开口的共享存储器模型的一个实施例的流程图。
图6是操作中的共享存储器模型的一个实施例的流程图。
详细描述
本发明的多个实施例提供了用于CPU-GPU平台的编程模型。特别是,本发明的多个实施例提供用于集成和分离设备的统一编程模型。该模型也可以统一地对多个GPU卡和混合GPU系统(分离的和集成的)工作。这允许软件销售商编写单个应用堆栈并将使其面向所有不同的平台。此外,本发明的实施例提供了在CPU和GPU之间的共享存储器模型。代替了共享整个虚拟地址空间,仅仅一部分虚拟地址空间需要被共享。这允许在分离的和集成的设置中的有效实现。进一步的,语言注释可被用于区分必须被运行在GPU上的代码。语言支持可被扩展为包括诸如函数指针之类的特征。
共享存储器模型的诸实施例提供了新颖的编程式样。特别是,数据结构可以在CPU和GPU之间无缝共享,并且可以从一端向另一端传递指针而不要求任何格式编组。例如,在一个实施例中,游戏引擎和包括物理、人工智能(AI)以及渲染。物理和AI代码最好在CPU上执行,而渲染最好在GPU上执行。诸如场景图片之类的数据结构可能需要在CPU和GPU之间共享。在一些当前的编程环境中这样的执行模型可能是行不通的,因为场景图片需要被来来回回地串行化(或格式编组)。然而在共享存储器模型的诸实施例中,场景图片可简单地位于共享存储器中,并可被CPU和GPU共同访问。
在一个实施例中,实现了包括语言和运行时支持的完全编程环境。多个高度并行的非图形负载可经由端口与该环境对接。该实现可工作在多样性的操作系统上,即,在CPU和GPU上运行不同操作系统。此外,可在CPU和GPU之间允许用户级通信。这可使得应用堆栈更为高效,因为可以消除CPU-GPU通信中的OS驱动器堆栈的开销。该编程环境可经由端口与两个不同的多样性CPU-GPU平台模拟器对接——一个模拟作为分离设备附加到CPU的GPU,另一个模拟集成CPU-GPU平台。
总之,CPU-GPU平台的编程模型的诸实施例可以:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980154460.7/2.html,转载请声明来源钻瓜专利网。