蓝色巨人的怒吼 IBM Power 7处理器浅析
毫不夸张地说,Power 7处理器的问世,让IBM重新夺回了高性能计算领域的制高点,以恐怖的性能和突破性的规格将Intel、AMD远远甩开。究竟蓝色巨人给Power 7注入了什么样的魔法?现在就让我们一起探个究竟。
高性能计算再起风云
短短几年时间,高性能计算领域就已经发生了翻天覆地的变化—先是SUN在SPARC处理器上开发不力,逐步淡出。然后是Intel至强和AMD皓龙处理器的低价渗透。
就在2009年,NVIDIA甚至试图借助GPU架构的Tesla进军高性能计算领域—就在我们以为高性能计算领域也会像台式机、服务器领域那样回归Intel、AMD、NVIDIA三家斗法之时,盟主IBM终于按耐不住,在2010年2月8日拿出了密谋许久的Power 7处理器。
冲击千万亿次计算
你可别以为Power 7处理器会像其他几家的CPU和GPU那样,一年就能够换代,事实上关于Power 7的研发从2006年就开始了。2006年11月,IBM赢得了美国国防高级研究计划署(DARPA)研发每秒千万亿次计算(Petascale)超级电脑的研发合同。合同中规定,在2010年底IBM必须拿出达到千万亿次运算规模的超级计算机供DARPA使用。在合同中还规定,这样的计算机架构,必须能在日后实现商业化和规模量产化。其中IBM还提出,新的架构要完全符合PERCS(Productive,Easy-to-use,Reliable Computer System)—即高效易用可靠运算架构。在这个价值2.4亿美元的项目中,IBM当时就预计交付美国国防高级研究计划署的电脑将会使用Power 7处理器、AIX操作系统以及通用并行文件存储系统。从2006年11月开始,IBM就和美国国防高级研究计划署就新的处理器架构进行合作研发,目标很简单—让千万亿次计算触手可及。
如果你经常看到Intel和NVIDIA的宣传,应该还记得Intel的80核处理器计划,目标是实现单芯片上万亿次计算(Terascale)级别的计算。事实上在高性能计算领域,几乎所有厂商都在为万亿次计算努力。而2008年IBM为美国国家核能安全管理部设计的Roadrunner(走鹃)超级计算机,才首次达到1.026PetaFLOPS(每秒千万亿次浮点运算),成为人类首部达到千万亿次计算级别的电脑。在当时,IBM Roadrunner动用了6912颗AMD双内核Opteron处理器和12960颗IBM PowerXCell 8i处理器,并且配备了51.8TB内存,耗资1.33亿美元。而Roadrunner之所以如此庞大,究其原因就在于单个处理器所提供的运算能力相当有限—双内核Opteron处理器只有5.2GFLOPS浮点运算能力,IBM PowerXcell 8i处理器的浮点运算能力为102.4GFLOPS。而NVIDIA的高性能运算卡Tesla C2070 也只能提供630GFLOPS浮点运算能力。
IBM Roadrunner超级计算机
毫无疑问,要降低超级电脑跨入Petascale的门槛,提升CPU的峰值浮点运算能力是不二的法门。NVIDIA、AMD等图形卡制造商力挺的异构计算,虽然能够达到更高的峰值浮点运算,但在交付使用后往往需要改写大量的代码,才能完全发挥异构体系的力量。而用传统CPU架构堆砌起来的超级计算机,显然更符合IBM PERCS结构。
Power 7 CPU
根据IBM的数据,Power 7将会提供最大264.96GFlops的峰值浮点运算能力,将当今市场上的一切CPU都远远的抛在身后。Power 7即便面对NVIDIA/AMD的GPU架构处理器也不遑多让。更让人惊讶的是,IBM在Power 7上引入了智能核心、智能线程、智能缓存、智能功耗和智能内存技术,解决了困扰当今PC许久的运行效率与功耗等至关重要的问题。
打造史上最大CPU
如今热卖的Intel Core i7 处理器采用了45nm制程工艺,芯片面积为270mm2。而同样采用45nm工艺的Power 7处理器,芯片面积却高达567mm2—是Intel Core i7的两倍。究竟IBM用567mm2的核心和12亿个晶体管干了些什么?Power 7处理器将会有4、6、8内核三种规格。其中每个内核都能实现4路同步并发线程。这意味着在8内核Power 7中,可以并行执行32条线程!而我们熟悉的Core i7处理器每个内核通过超线程技术只能提供两个并发线程。 #p#page_title#e#
Power 7 CPU内核
除此之外,在Power 7每个内核中都拥有12个执行单元。每个执行单元包含2个整数运算单元、2个存储/读取单元、4个双精度浮点运算单元、1个支持VSX的矢量执行单元、1个十进制浮点运算单元、1个分支单元、1个寄存器单元。在Power 7 CPU中每个内核都有32KB一级指令和数据缓存、256KB二级缓存。所有核心共享32MB eDRAM三级缓存。Power 7初期频率就能达到3GHz~4.14GHz,并内置了两个4通道DDR3内存控制器,以提供最大100GB/s的内存带宽。值得一提的是,IBM Power 7中三级缓存是用eDRAM实现的,而非传统CPU中的SRAM。和SRAM相比,eDRAM能极大的节省晶体管数量和降低芯片面积,并且提供直逼SRAM的传输带宽—在微软XBox 360游戏机的GPU上,eDRAM就轻松提供了256GB/s的传输率。由于eDRAM的引入,Power 7在搭载32MB三级缓存时芯片面积也没有过度增长。和前辈Power 6相比,Power 7的主频已经从5GHz降低到了4.14GHz。但由于Power 7拥有更多的内核、更强的并发多线程能力,所以在性能上Power 7可以实现倍数的跨越。
智能为王 更聪明的Power 7
Power 7是一颗聪明的处理器,IBM工程师为它赋予了更多的智能技术,在性能、功耗上取得更大的突破。
能自动优化核心
在Intel推出Core i7 CPU的时候,TurboBoost功能成了产品重要卖点不断宣传。Intel的TurboBoost技术可以让CPU根据负载,在不同的内核负载下,自动提升单核频率以及整体频率以实现更快的运行速度。在Power 7上,IBM更进一步,提出了智能核心的概念。Power 7处理器拥有最多8个内核,因此IBM为Power 7设计了TurboCore和MaxCore两大运行模式。TurboCore模式可以对数据库或工作负载进行高度优化,同时采用4个内核运行,并把芯片中所有8个内核大部分资源放到4个运行的内核中,以提供更大的缓存和内存带宽,提升时钟频率,提高单核性能。
Power 7 CPU内核架构
当不采用TurboCore模式时,所有Power 7处理器在MaxCore模式下,拥有多达8内核、每内核4线程,共计32线程的并行处理能力。你千万别以为智能内核只是简单的超频、关闭打开内核那么容易。在TurboCore模式下,虽然有4个内核会被关闭,但这些内核所占据的缓存和各种执行资源都会被释放,由工作中的4个内核统一调度,以实现资源利用的最大化。
夸张的8核32线程并行处理能力
在Power 7中,IBM引入的SMT4技术可以在单一内核上实现4路同步多线程功能。这样一次就能吃下4条线程,极大地提升并行能力。但是所谓的SMT同步多线程,并不是真正的多内核多线程。
只是通过不断的状态切换,以提升内核利用率的一种方式。这样的设计在并行度很高的应用中能获得立竿见影的效果。但在数据库等应用中往往会出现性能下降。过去我们大多采用手动打开、关闭SMT同步多线程的方法“因地制宜”。
Power 7提供4路同步多线程功能
在Power 7上,IBM引入了智能线程(Intelligent Threads),可以根据工作负载要求进行设置不同的多线程模式,系统可以自动选择,也可以由管理员进行手动设置。这样就能在并发线程和执行效率中获得良好的平衡。必须指出的是,智能线程功能是需要操作系统支持的。只有在2010年4月问世的IBM AIX 6.1 TL05操作系统支持此功能—在现阶段的Linux等操作系统中,Power 7的SMT功能将完全无法使用。这些操作系统会把Power 7当作8内核普通处理器进行管理。
更智能的缓存和内存控制器
从自动控制内核开关,到自动判断SMT功能是否打开,打开多少。在处理器运算能力调度方面,Power 7已经技压群雄。不过,IBM似乎还不满足于运算能力的灵活调度,他们想让缓存和内存系统也变得更为智能高效。 #p#page_title#e#
Power 7处理器的L3缓存和Intel Core i7有许多相似之处— 例如每个内核都在L3 缓存中有自己的高速本地L3缓存区(Fast Local Region of L3 Cache,FLR-L3)。但每个内核之间,却依然能通过L3 缓存共享数据。根据IBM的说法,Power 7 32MB L3 Cache中,有4MB缓存的速度快和延迟低,提供的性能介乎于L1和L2之间,由此来确保处理器在众多内核并行工作时仍然有较好的性能。
Power 7内存访问机制
为了压倒Intel在Core i7中集成的3通道DDR3内存控制器,Power 7干脆直接集成了两个4通道DDR3内存控制器,这意味着每个Power 7处理器最多能支持256GB的DDR3内存。在内存控制器内部,Power 7专门设计了芯片内DDR3 内存缓冲区。这样的设计极大地增加了每个Power 7内核所能管理的内存容量,并且实现了更高级别的冗余扩展和电源管理。由于采用了4通道内存设计,所以Power 7已经取消了对单根低容量DDR3 内存的支持。在Power 7上用户最少需要安装两条4GB DDR3 内存才能正常启动。
Power 7内存控制器
值得一提的是,IBM Power 7中引入了新的低电压差分信号传输方式,这样让Power 7在支持海量内存和8个以上DIMM内存插槽时,主板布线不至于太过复杂。
强大的智能功耗管理功能
几乎所有新的CPU都在电源管理上狠下功夫。Power 7也不例外。在Power 7上,IBM提出了智能功耗(Intelligent Energy)的概念,并在Power 7中延续了Power 6 CPU上大获好评的EnergyScale功能。Power 7处理器内部构建的EnergyScale单元能不断地搜集整个电脑的功耗数据,然后将其汇报给IBM Systems Director Active Energy Manager功耗管理软件。在Power 7运行的时候,IBM的功耗管理软件就能即时提供功耗数据和运行状态。用户甚至可以直接设定整部Power 7电脑最多能使用的功耗,以及最少能使用的功耗,以调整机房的耗电量。在智能功耗功能的帮助下,我们甚至可以让Power 7在夜晚以50%的功耗工作,在白天繁忙时段才满负荷工作。而Power 7处理器在空闲时,也将会自动进入“Nap”状态,关闭执行单元的供电、降低频率和电压以实现更低的功耗。
IBM电源管理工具IBM Systems Director Active Energy Manager
根据IBM的测试,Power 7在引入一系列“智能”技术后,每瓦性能大幅提高,Power 7比相似的Intel x86系统提升2倍,比Sun SPARC服务器和相似的HP安腾服务器分别高出4倍和8倍
无限虚拟 内存倍增 Power 7独门秘籍
内存倍增术—Active Memory Expansion
无需操作系统支持,无需做任何硬件改动。可用内存容量就能多50%?这可不是什么内存清理软件的广告词,而是IBM在Power 7上引入的Active Memory Expansion内存实时压缩技术的魔力。Active Memory Expansion功能可以通过Power 7电脑管理程序打开或者关闭。在打开Active Memory Expansion功能后,CPU将会实时压缩内存中的数据,以获得更大的可用内存空间。在IBM的测试数据中,Power 7打开Active Memory Expansion功能后,将会在SAP程序里面多出50%的可用内存空间,从而极大的提升系统性能。
打开AME功能后,内存会被分成压缩数据和非压缩数据两大区域
Power 7将会自动压缩不被反复调用的数据,以实现可用内存空间加大。数据被压缩之后,将无法由程序实时调用,因此Active Memory Expansion内存压缩功能并无法适应所有类型的程序。
AME打开和关闭后的性能对比
由于Active Memory Expansion功能完全由硬件实现,因此该功能对性能的影响微乎其微。由于打开内存压缩之后,可用内存有所增加,所以在高负载情况下,Active Memory Expansion对性能提升有明显的帮助。Active Memory Expansion可以针对每个内存逻辑分区打开或者关闭,操作系统将会自动分析哪些数据能被压缩后放入压缩数据池,哪些数据无法压缩。现阶段,要打开Power 7的AME功能,必须使用IBM AIX 6.1 TL4 SP2或更高版本的操作系统。 #p#page_title#e#
PowerVM—1000个虚拟机的威力
在服务器和高性能计算领域,虚拟化已经成了标准配备。AMD和Intel CPU大多只能提供不到10个虚拟机同时运行的硬件虚拟化支持。而在Power 7上,IBM祭出的PowerVM虚拟化技术能让Power 7 CPU每个内核都能硬件支持10个虚拟机镜像。目前的8路64核系统可支持单系统最高640个虚拟机同时运行。今年年内,他们还将推出32路256核Power 7系统,最高同时运行1000个虚拟机—这个数量足足比Power 6提升了4倍。
结语:高性能计算硝烟再起
就在Power 7问世以前,许多人都认为Roadrunner使用了Opteron+PowerXCell这样的异构设计,绝对是未来高性能计算的主流。而NVIDIA、AMD凭借GPU提供的海量并行能力,也有希望在其中分一杯羹。在IBM Power 7问世以后,我们才猛然发现,在高性能计算领域,循规蹈矩的提升CPU性能并非绝无可能。Power 7以强横的处理能力和突破性的功能似乎在向世界证明—传统CPU的生命力依然旺盛。在可以遇见的未来,高性能计算领域仍将是CPU集群主导、异构架构竞争的时代。