推土机性能增强10%!CPU线程调配探究
泡泡网CPU频道11月24日 在今年的10月12日,AMD正式发布了人们期待已久的Bulldozer推土机处理器,新架构相比上一代的重大改变之一就是采用了全新的模块化设计——两个核心组成一个模块(Bulldozer Module),这种设计的优点就是既可以在拥有多达八颗物理核心的情况下大量节约晶体管,又不会出现超线程技术中的性能不升反降的情况。
AMD推土机架构的每个模块内有两个整数核心和一个浮点核心,各自搭配专用的调度器,浮点核心为两个整数核心共享使用。据AMD介绍,推土机每个模块可以同时处理两个线程,两个线程都分别有独立的单元对应,而这两个单元可以共享命令解码器和浮点运算指令解码器等资源,跟Intel的SMT超线程技术相比,推土机模块的两条线程不会抢夺资源,产生冲突,从而有效得提升了数据吞吐量。
我们回顾下推土机处理器的模块化设计的优点:首先,每个模块拥有两颗物理核心,四个模块就是真八核;其次,模块化设计可以减少暴力堆叠产生的冗余晶体管,可以控制成本和发热量;再次,推土机模块内每颗核心拥有一级缓存,两颗核心共享二级缓存,四个模块共享三级缓存,这样缓存的利用率很高;最后,当模块内的一个核心负载一个待机时,资源的利用率很高,单核性能也会比较理想,也不会产生超线程技术中出现的性能不升反降的情况。
然而,推土机处理器的性能并不如想象中的那么强大,究竟是什么让模块化设计变得黯然失色呢?我们或许能从最近的新闻中窥到某些信息。推土机处理器性能未达到预想水平自然是AMD近期比较头疼的一件事,不过近期有消息称“Windows 8或许是推土机处理器的救星”,那么这究竟是怎么回事呢?一切还得从Windows的内核调度结构体说起。
首先要说下进程与线程的区别,在操作系统中,每个程序可以看作是指令的集合,执行这些程序就会产生进程,一个程序可以有多个并行进程,每个进程包含多个线程(操作系统中的最小调度单位是线程),每条线程可以并行执行多个任务。
Windows操作系统的内核线程调度机制并未针对模块化设计优化
以实际应用来说,当你运行某个程序时,在Windows操作系统中就会出现对应的一个或多个进程,每个进程又会包含多个线程分配到处理器中执行。如果一个程序针对多线程优化,那么该程序对应的进程中的不同线程就会能得到充分执行,程序的执行吞吐率也会高很多。这样的程序在多核或者支持超线程技术的处理器上运行时效率就会很高,不过现在的很多程序并没能跟上处理器多核化的脚步,比如Photoshop在测试中就只能让处理器的一颗核心满载,而其他核心都处在空闲状态,我们能做的是什么呢?或者说Windows8能做的是什么呢?
在Windows系统中,调度的最小单位就是线程,系统依靠自己的内核线程管理机制可以将一个或多个进程或者一个进程中的一个或多个线程绑定到一个或多个处理器核心上(即CPU亲缘性)。读到这儿你要激动下了,因为推土机处理器的每个模块内的运算资源是由两颗核心共享的,如果一个程序并不能利用这么多核心(目前能完整利用到八颗核心的日常程序是少之又少),而只能利用到四颗核心,操作系统让该程序进程中的线程分别只运行在每个模块中的一个核心上,而让另外一个核心闲置,那么这时的运算效率会怎样呢?
现在的问题是在Windows 7中,推土机的八颗核心均是一模一样的,它本身并没有上段的那种调度机制,而Windows 8就带来了这种可能性,不过现在我们可以采用方法在Windows7中实现这种机制,于是小编带来了下面的测试。
前面已经提到,本次测试采用的是AMD FX-8150四模块八核心推土机处理器,配套主板为华擎990FX Professional,内存则是采用金士顿4GB DDR3-1333 X2,显卡选择了Geforce GTX580。
本次测试意在探讨操作系统调用推土机处理器不同核心的程序运行情况,分别让处理器启用每个模块的一个核心,闲置其中的另一个核心(以下简称为“设置一”)、让处理器启用两个模块的四个核心,闲置另外两个模块(以下称为“设置二”)运行程序。
Adobe Photoshop只能利用处理器的一颗核心
测试项目主要针对能较好利用多线程的程序,而像Super PI、Adobe Photoshop等程序就不在测试范围内。
首先测试的是国际象棋测试。它它通过模拟思考国际象棋的算法测试处理器性能,能较好得支持多线程,主要测试大量科学计算,经常被用来测试处理器的科学运算能力。
让处理器只启用每个模块的一个核心,闲置另外一个核心(设置一)
设置一下的测试成绩
让处理器只启用两个模块的核心,闲置另外两个模块的核心(设置二)
设置二下的测试成绩
从上图中的测试成绩来看,两种情况下的性能差距明显,设置一(只开启每个模块中的一个核心)下的性能要比设置二(只开启两个模块的四个核心)高出18%,显然多出的一倍运算资源并没有浪费。
CineBench使用针对电影电视行业开发的Cinema 4D特效软件引擎,可以测试CPU和显卡的性能,最新版本R11.5对于运算强度有了进一步加强,即便目前最强悍的处理器也很难在这项测试中取得高分。
设置一下的测试成绩
设置二下的测试成绩
上图的成绩显示,设置一下的推土机处理器性能领先设置二下达10%。
WinRAR是目前使用最广泛的压缩解压缩软件,而且它自带性能测试工具,可以为广大用户提供系统性能参考,WinRAR压缩/解压缩的运算主要依赖于CPU的性能以及内存性能。
设置一下的测试成绩
设置二下的测试成绩
上面的成绩显示,两种设置下的处理器性能基本一致。
3DMark 11是Futuremark在DX11显卡全面上市一年之后才推出的DX11显卡性能测试工具,兼顾考察CPU处理器的配合能力,尤其是在并行计算方面。3DMark 11基于原生DX11引擎,全面使用DX11 API的所有新特性,包括曲面细分、计算着色器、多线程。
设置一下的成绩
设置二下的成绩
在3DMark 11的测试中,设置一下的处理器性能比设置二高出3%,不过200分的领先幅度是比较大的,因为同平台下,酷睿i7-930也仅仅比酷睿i5-750多出200分。
PCMark7是全球著名图形及系统测试软件开发公司Futuremark带来的最新一款测试系统性能的工具,尽管在很多特效方面借鉴甚至照搬了PCMark Vatange,但是在对硬件的严格考验方面毫不马虎。
设置一下的成绩
设置二下的成绩
两种情况下的总得分差距也不大,不过设置一下的成绩无论是总得分还是子项分数相比设置二均领先。
Capcom公司格斗大作《街头霸王4》中的角色是3D多边形建模的,而战斗形式则依然是玩家们所熟悉的2D风格,游戏画面的表现效果相当惊人。 PC版除了支持高解析度画面输出之外,还为玩家提供了画面渲染风格选择的功能,除与家用机版一样的“普通”模式外,还有“水彩”、“海报”和“烟灰墨”这 三种追加的渲染风格。玩家在游戏的设定选项中,可以根据自己的喜好对显示效果进行调解。相比于传统的街霸游戏,《街霸4》对PC硬件的要求提高了很多,但并不像很多所谓大作那样变态,是考验主流硬件性能的必备游戏。
游戏画面设置
设置一
设置二
在《街头霸王Ⅳ》的测试中,设置一下的推土机处理器平台的游戏平均帧数领先设置二7.25%。
《H.A.W.X 》追求爽快感的空战游戏定位,驾乘战机鸟瞰依据真实卫星地图打造的广阔大地也成为了许多玩家的独特趣味。
游戏画面设置
两种情况下,设置一中平台的平均帧数领先设置二6帧。
《冲突世界》(WorldinConflict)是一款重点在于单位策略、行动、团队游戏和毁灭上的后冷战时期的即时战略游戏。游戏画质达到了次世代级别。
游戏画质设置
两种设置下的成绩很相近,不过设置一下的平均帧数仍领先。
《异形大战铁血战士》是一款由Rebellion公司开发的FPS游戏,本作的游戏舞台设定为名叫BG-386的行星,殖民采掘集团在该星球发现了古代金字塔,围绕该金字塔隐藏的巨大秘密异形、铁血战士以及人类3种族再次展开激烈的战斗。
从测试结果来看,两种情况下的成绩基本一致,不过该款游戏对处理器的性能要求并不高。
● 总结
从本次测试来看,如果操作系统能针对推土机处理器较新的模块化设计进行优化,合理调度启用单个模块的单个核心,充分利用每个模块内的共享计算资源,那推土机的性能有望提升10%左右。
此外,本次测试中,小编发现多款程序并不能在指定启用推土机处理器核心时顺利运行,比如说AIDA64、wPrime、X264 HD Benchmark、3DMark Vantage、《星际争霸Ⅱ》、《孤岛惊魂2》、《地铁2033》等,不是找不到文件就是报错。由此看来,尽管推土机处理器首先在桌面处理器中推出八核心,但是目前很多软件并未能针对此改变——尤其是模块化设计,做出优化,如果未来的Windows 8能针对这种模块化设计适度优化,改进内核线程调度机制的话,推土机处理器还是会有不小的性能提升的。■<