科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>服务器频道>芯片>剖析Larrabee利器之共享虚拟内存

剖析Larrabee利器之共享虚拟内存

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Intel向客户提供了用于测试的新一代Larrabee处理器,它是一款采用了PCI E卡的协同处理器。这意味着内存被分成了CPU和Larrabee两个部分,而会成为编程方面的一大障碍。于是,Intel试着使用“共享虚拟内存”(Shared Virtual Memory,SVM)技术来解决这一问题。

来源:ZDNet编译 2009年12月08日

关键字:SVM Intel Larrabee CPU

●简化编程的集成内存

Intel向客户提供了用于测试的新一代Larrabee处理器,它是一款采用了PCI E卡的协同处理器。这意味着内存被分成了CPU和Larrabee两个部分,而会成为编程方面的一大障碍。于是,Intel试着使用“共享虚拟内存”(Shared Virtual Memory,SVM)技术来解决这一问题。Intel在推进Larrabee开发的同时,也进行着向Larrabee整合这项技术的研究。因此,共享虚拟内存成为Larrabee等数据并行内核与CPU之间的一道桥梁。

Intel首席技术官Justin R. Rattner

Intel和AMD最终都计划向CPU上集成数据并行处理器。这也是一个将PC用CPU与Larrabee GPU这样的数据并行内核集成到一个印模(半导体的主体)上的趋势。Intel首席执行官Justin R. Rattner解释说,这种集成是和编程模式与电力能源效率有关系的。

“如果是提供了一个大CPU内核和一个大向量引擎,那么编程就会很容易。无需获得集成内存地址就可以完成额外的工作。变成模式非常简单,可以从这两种内核受益。”

当然,也会有所均衡。因为CPU的内存容量很重要,所以不能过多使用高速内存。加速芯片可以使用高性能的内存。内存性能因为价格和性能的折衷而有所下滑。集成之后电力能源效率方面有所提升。实际上,这是最重要的一个优点。

● 适用于加速器的共享虚拟内存

CPU和Larrabee中都有一个内存,CPU通过协同处理器单元来处理数据,而Larrabee是通过PCI-E处理数据的。

CPU与GPU之间的数据传输是编程方面的最大瓶颈,而共享虚拟内存带来了一种帮助Larrabee消除这一瓶颈的机制。这样你只需要很少一部分成本就可以实现CPU和GPU之间的内存共享。

10月的时候Rattner曾在日本召开的新闻发布会上进行了如下说明:“内存共享是损耗所有加速器架构的一个常见问题,从第一个浮点运算加速器问世以来就存在了。因此,多年来我们一直在研究如何攻克这一难题。”

SVM概述

虚拟内存实现了与不同IA的有效内存共享

最终他们发现升级的虚拟内存技术可以解决这一问题。如果数据共享可以在页面层级进行的话,那么就可以在不同类型的IA内核中有效地共享内存。这要比把成本都投入到支持复杂机制的硬件上要好很多。我们将这种技术称之为“Mine, Yours, Ours”(MYO)。

Intel尝试通过在Larrabee和CPU之间引入共享虚拟内存来有效地实现数据共享。尽管Larrabee和CPU都有各自的物理内存,但是虚拟内存机制也可以共享内存。因为两种处理器都共享同一个虚拟内存以及数据结构。

这与NUMA的共享内存系统有些不同,让人有些困惑。Intel设计通过QuickPath Interconnect (QPI)将Larrabee与CPU连接,在Larrabee上加载一个连贯机制,创建一个完全的共享内存。

然而,Intel希望通过引入PCI-E来普及Larrabee。Larrabee既加载了QPI,也加载了一致性内存机制。因此,CPU和Larrabee之间不能采用NUMA,于是就用共享虚拟化内存来代替。

● Intel积极研发共享虚拟内存

实际上,共享虚拟内存并不是一个全新理念。Intel曾在以前的超并行超级计算机中就采用了这项技术。Intel“Paragon”超级计算机采用这项技术来保持内存的一致性,而这次的技术命名是“MYOAN”(最初引入iPSC/2的技术名称是KOAN)。

有趣的是,Intel开发Larrabee是基于开发超级计算机的经验。从超级计算机的SIMD和MIMD研究中产生了Larrabee架构。而且,未来超级计算机也将采用内存共享技术。

不过Intel在最近两三内曾多次提及共享虚拟内存技术。因为这项技术最开始是作为针对加速器的技术,因此在2007年的IDF大会上,它被列为使用加速器的异构系统结构编程环境“Accelerator Exoskeletons”的关键技术。

Accelerator Exoskeletons模式

展示概要

而且,今年3月召开的GDF上也展示了这项技术,不过命名是“MYO”。今年10月日本的一个新闻发布会和11月的SC09大会也展示了类似的技术。当然,“Mine, Yours, Ours”正是共享虚拟内存的正确方向。

● 复杂的数据结构将成为瓶颈之一

Rattner从超级计算机时代就开始研究的SVM技术在应用层级使用会带来怎样的好处?如果针对Larrabee来说的话,那就是CPU可能也要共享复杂的数据结构。

CPU首先应该解决数据结构的问题。通过PCI等内部连接,而且在加速器方面针对共享虚拟内存进行重新架构。总之,加速器应该解决结构的问题,发回到CPU,再架构。

实际上我们研究了GPU上执行物理仿真的代码。在这种情况下,软件数据从CPU发送到GPU中。

因此,尽管物理引擎本身很适合于GPU架构,但是发送大量数据导致开销过大。分解数据结构,迁移,再架构,然后再反复,这样使幅度大大降低。

而且,这种结构经常会出现错误。如果是一个复杂结构的话,生成数据和再架构的过程出现错误的几率增加。而且,这样的错误很难被发现,从而导致开发工作效率降低,浪费宝贵的时间。例如,游戏程序员要花好几天的时间在数据结构编程上,而如果可以省掉这一部分工作的话,生产效率会大幅度提高。

如果想要使用Larrabee进行处理的话,这种复杂结构将是一个最大问题。当然,这要取决于不同应用,但说到底它仍然是最主要的瓶颈之一。

为什么连接内存

软体物理引擎

● 取消数据传输 保留数据结构

为了解决这个问题,Intel引入了共享虚拟内存。Rattner这样解释说:“IA是Larrabee处理器的一大优点。Larrabee具有IA CPU的完整内存管理功能。因此,在Nehalem和Westmere通用处理器上可以非常有效地部署共享虚拟内存。”

我们可以让这两种处理器通过交换存取来访问内存页和常用空间中的数据,这样不需要分解和组织一个日常数据结构就可以共享数据了。

具体如下。如果通过CPU处理器共享内存页是在它本身进行的,这么这个页面就会被保护起来不准许其他处理器(例如Larrabee)访问。Larrabee无法访问这一页的状态会一直持续到CPU明确为Larrabee提供访问权限。

当CPU结束在页面上的操作,CPU会发出信息:“所有包括mesh数据的页面上的mesh重组工作都已完成,所有这些页面都将交给Larrabee。”CPU将不再访问这些页面的内存管理单元。

然后,Larrabee将可以访问这些页了。从页面读取数据,进行物理模拟计算,更新数据结构,这时候Larrabee就会发出信息:“处理完毕,访问页面的权限交回给CPU。”

因为从GPU的虚拟内存空间可以看到CPU方面的数据结构,所以之间通信的很简单。只要访问权限交给了CPU方面,那么也可以直接进行而不会破坏数据结构。

● 在页面层共享SVM

这种结构听上去与普通的共享内存系统有些类似,但实际上差异很大。首先,保持内存一致性的软件处理单元是页面或者软件流程的一部分。

Rattner解释说:“它是在页面层保持一致性的。当然,有必要为维持一致性而支付成本。不过,共享数据的计算复杂性是很低的,开销也不大。支付一定成本就可以获得适当的性能。”

通常在共享内存中,“因为CPU在读取这个缓存块的时候,其他处理器就不能覆写了。”然而对于共享虚拟内存来说,这是在内存页单元中进行的。因为管理的颗粒度大得多,所以在一定条件下共享虚拟内存的管理也更加简单,即使不投入硬件成本也可以获得性能提升。

SVM的内存管理

关于SVM软件架构的建议

另外一个差别在于,它是虚拟的共享内存。实际上,共享虚拟内存的地址空间和CPU与Larrabee的物理内存地址空间是相同的。通过页维持CPU物理内存和Larrabee物理内存之间的一致性,共享虚拟内存技术进一步对两个物理内存进行扩展,一个内存页作为缓存,与另一个内存页相同。

Rattner解释说,CPU方面,数据保存在特定特免上,映射则是在CPU物理内存中完成的。同时,为了访问Larrabee会阻挡与Larrabee物理内存相同的地址。当安装结束,CPU在内存页之间维持物理内存的一致性。持续传输数据,CPU返回访问权限,允许Larrabee访问。

Larrabee具有和IA CPU完全相同的内存管理功能。据说内存页面大小和页面表格格式也是一样的。现在Intel通过发布Accelerator Exoskeletonframe架构实现了更简便的控制。

这次Intel还向Larrabee增加了数据并行特性,这对处理大型数据块是有利的。数据颗粒度小的话,维持页面一致性的效率就会何地,不过Larrabee不存在这个问题。

MYO编程环境

异构性的多种形式

Intel逐步向Larrabee中引入各项技术来作好各方面的准备。单是共享虚拟内存这一个特性对开发者的吸引力就很大了。现在从产品战略看不出Larrabee的方向,这也表明目前Intel策略的不确定性。

邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅ZDNet技术邮件将是您的最佳途径之一。