当前位置: 首页 > 专利查询>英特尔公司专利>正文

计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享制造技术

技术编号:11346644 阅读:125 留言:0更新日期:2015-04-24 03:02
一种计算平台可包含异质处理器(例如CPU和GPU)以支持这种处理器之间虚函数的共享。在一个实施例中,用于访问来自CPU 110的共享对象的CPU侧虚函数表指针可用于确定GPU虚函数表,如果存在GPU侧表的话。在其它实施例中,可在共享虚拟存储器内创建可不保持数据一致性的共享非相干区域。存储在共享非相干区域内的CPU和GPU侧数据可具有与从CPU和GPU侧看到的相同的地址。然而,CPU侧数据的内容可不同于GPU侧数据的内容,因为共享虚拟存储器在运行时期间可不保持一致性。在一个实施例中,vptr可修改成指向存储在共享虚拟存储器中的CPU虚函数表和GPU虚函数表。

【技术实现步骤摘要】
【专利说明】
技术介绍
计算平台可包含异质处理器,诸如中央处理单元(CPU)和图形处理单元(GPU)、对称和不对称处理器。类实例(或对象)可驻留在与CPU-GPU平台的第一侧(例如CPU)相关联的第一存储器中。不可能使第二侧(GI3U侧)调用驻留在与CPU-GPU平台的第一侧(CPU侦D相关联的第一存储器中的对象和相关联的成员函数。也不可能使第一侧能够调用驻留在第二侧(GPU)侧上第二存储器中的对象和相关联的成员函数。当类实例或对象被存储在不同地址空间时,现有通信机制可能仅允许异质处理器(CPU与GPU)之间的单向通信来调用类实例和相关联的虚函数。这种单向通信方法防止了异质处理器之间的类实例的自然功能性划分。对象可包括面向吞吐量的成员函数和一些标量成员函数。例如,游戏应用中的场景类可具有可适合于GPU的渲染函数,并且还可包括可适合于在CPU上执行的物理学和人工智能(Al)函数。用当前的单向通信机制,通常存在两个不同的场景类,分别包括CPU(上例中的物理学和Al)成员函数和GPU(适合GPU的渲染函数)成员函数。使两个不同的场景类一个用于CPU而另一个用于GPU可能需要在两个场景类之间来回拷贝数据。【附图说明】在附图中作为示例而非作为限制说明了本文描述的本专利技术。为了说明的简化和清晰,图中示出的单元不一定按比例绘制。例如,为了清楚起见,一些单元的尺寸可能相对于其它单元放大了。另外,在认为适当的情况下,附图标记已经在各图之间重复使用来指示对应或类似的单元。图1示出了根据一个实施例支持在计算机平台中提供的异质处理器之间的共享虚拟存储器中存储的虚函数共享的平台100 ; 图2是示出了根据一个实施例由平台100执行的支持在计算机平台中提供的异质处理器之间的共享虚拟存储器中存储的虚函数共享的操作的流程图; 图3示出了根据一个实施例用于从共享对象加载虚函数指针的CPU侧和GPU侧代码;图4是示出了根据第一实施例由平台100执行的生成表以支持在计算机平台中提供的异质处理器之间的共享虚拟存储器中存储的虚函数共享的操作的流程图; 图5示出了根据一个实施例由平台100用于支持通过异质处理器可共享的对象的成员函数进行CPU 110与GPU 180之间双向通信的流程图; 图6示出了根据第一实施例实际地描绘由CPU侧进行的GPU虚函数和GPU函数调用的处理的流程图; 图7是示出了根据实施例由平台100执行的使用虚拟共享非相干区域支持异质处理器之间的虚函数共享的操作的流程图; 图8是示出了根据实施例使用虚拟共享非相干区域支持异质处理器之间的虚函数共孚的关系图; 图9示出了根据一个实施例可提供对在计算机平台中提供的异质处理器之间的共享虚拟存储器中存储的虚函数共享的支持的计算机系统。【具体实施方式】以下描述描述了在计算平台的异质处理器之间的共享虚拟存储器中存储的虚函数共享的技术。在以下描述中,阐述了许多特定细节,诸如逻辑实现、资源划分或共享或系统组件的副本实现、类型和相互关系以及逻辑划分或综合选择,以便提供本专利技术的更透彻理解。然而,本领域技术人员将认识到,没有此类特定细节也可实施本专利技术。在其它实例中,未详细示出控制结构、门级电路和完整软件指令序列,以免使本专利技术模糊。本领域技术人员用所包含的描述将能够实现适当的功能性,无需过多实验。在说明书中提到“一个实施例”、“实施例”、“示例实施例”指示所描述的实施例可包含具体特征、结构或特性,但每个实施例可能不一定都包含该具体特征、结构或特性。此夕卜,这种短语不一定是指同一实施例。另外,当结合一个实施例描述具体特征、结构或特性时,认为它在本领域技术人员的知识范围内,以结合其它实施例影响这种特征、结构或特性,不管是否明确描述了。可用硬件、固件、软件或它们的任何组合来实现本专利技术的实施例。本专利技术的实施例还可实现为存储在机器可读介质上的指令,它们可由一个或多个处理器读取和执行。机器可读存储介质可包含用于存储或传输采用机器(例如计算装置)可读形式的信息的任何机构。例如,机器可读存储介质可包含只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存装置;电、光形式的信号。另外,固件、软件、例程和指令在本文可描述为执行某些动作。然而,应该认识到,这种描述只是出于方便,并且这种动作实际上源于计算装置、处理器、控制器和执行固件、软件、例程和指令的其它装置。在一个实施例中,计算平台可支持一种或多种技术以允许通过细粒度划分共享对象来通过诸如共享对象的虚函数的成员函数进行异质处理器(例如CPU与GPU)之间的双向通信(函数调用)。在一个实施例中,计算平台可允许使用称为“基于表”的技术的第一技术进行CPU与GPU之间的双向通信。在其它实施例中,计算平台可允许使用称为“非相干区域”技术的第二技术进行CPU与GPU之间的双向通信,在该技术中,可在虚拟共享存储器中创建虚拟共享非相干区域。在一个实施例中,当使用基于表的技术时,可用于访问来自CPU或GPU侧的共享对象的共享对象的CPU侧虚函数表(Vtable)指针可用于确定GPU虚函数表,如果存在GPU侧表的话。在一个实施例中,GPU侧虚函数表可包含〈〃类名〃、CPU虚函数表地址、GPU虚函数表地址〉。在一个实施例中,下面将更详细地描述获得GPU侧虚函数表地址和生成GPU侧表的技术。在其它实施例中,当使用“非相干区域”技术时,在共享虚拟存储器内创建共享非相干区域。在一个实施例中,共享非相干区域可以不保持数据一致性。在一个实施例中,共享非相干区域内的CPU侧数据和GPU侧数据可具有与从CPU侧和GPU侧看到的相同的地址。然而,CPU侧数据的内容可不同于GPU侧数据的内容,因为共享虚拟存储器在运行时期间可以不保持一致性。在一个实施例中,共享非相干区域可用于存储每个共享类的虚拟方法表的新拷贝。在一个实施例中,这种方法可将虚拟表保持在同一地址。图1中示出了提供可在异质处理器、诸如CPU与GPU之间共享的虚拟共享存储器中的虚函数的计算平台100的实施例。在一个实施例中,平台100可包括中央处理单元(CPU) 110、与CPU 110相关联的操作系统(OS) 112,CPU私有空间115、CPU编译器118、共享虚拟存储器(或多版本共享存储器)130、图形处理单元(GPU) 180、与GPU 180相关联的操作系统(OS) 182、GPU私有空间185和GPU编译器188。在一个实施例中,OS 112和OS 182可分别管理CPU 110和CPU私有空间115,以及GPU 180和GPU私有空间185的资源。在一个实施例中,为了支持共享虚拟存储器130,CPU私有空间115和GPU私有空间185可包括多版本数据的拷贝。在一个实施例中,为了保持存储器一致性,诸如对象131的元数据可用于同步存储在CPU私有空间115和GPU私有空间185中的拷贝。在其它实施例中,多版本数据可存储在物理共享存储器诸如共享存储器950(图9的,下面描述)中。在一个实施例中,共享虚拟存储器可由物理私有存储器空间(诸如异质处理器CPU 110和GPU 180的CPU私有空间115和GPU私有空间185)或物理共享存储器(诸如由异质处理器共享的共享存储器950)支持。在一个本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104536740.html" title="计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享原文来自X技术">计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享</a>

【技术保护点】
一种平台,包括:中央处理单元(CPU)和图形处理单元(GPU)的组合;以及所述GPU和CPU都可访问的共享物理存储器,其中所述平台能够将所述共享物理存储器映射到所述CPU和GPU都可访问的共享虚拟存储器,其中,所述平台适于:将包括多个虚函数的共享对象存储在所述共享虚拟存储器中;以及在所述CPU和GPU之间共享所述多个虚函数中的至少一个。

【技术特征摘要】

【专利技术属性】
技术研发人员:S颜S罗X周Y高H陈B萨哈
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1