正文内容 评论(0)
编译器:CPU性能对比的另一秘诀
当前的CPU市场格局大家都有个了解,Intel从Core架构特别是进入Core i7/i5/i3之后以Tick-Tock战略连连得胜,而且在CPU架构和制造工艺上一骑绝尘,AMD这几年时间只更新了K10及Bulldozer推土机两代,后者独特的模块化设计也一言难尽,并没有达到预期目标,已经落于下风了。
如今的对比就是这样,Intel在CPU性能上大幅领先AMD,AMD只能用性价比以及APU的剑走偏锋来应对。虽然豪言CPU速度竞争已经不再重要,但是个中滋味也自在心头。
除了架构设计,CPU性能高低是不是还存在别的影响因素?一个由来已久的争论就是编译器(compiler)优化。江湖人人皆知,Intel不仅有自己的编译器,而且在针对性的优化中区分Intel系及非Intel系,并针对自家的处理器做重点优化。
2008年开始美国联邦贸易委员会在调查Intel垄断案件中就以编译器优化作为Intel不公平竞争的证据。2010年,FTC与Intel达成和解,Intel承诺编译器不再区分Intel和非Intel处理器,优化时一视同仁。
Intel的编译器优化注意事项中就提到在Intel处理器上会有额外的性能提高
这是前因后果,但是具体到测试上不同的编译器又对CPU性能有多少影响呢?很少有媒体做这样的测试,不过Behardware网站出手了,他们以Core i7-2600K、AMD FX-8150以及上一代的Phenom II X4 975处理器为例对比了不同的编译器下的性能。
全文内容非常多,基础原理、SSE/AVX指令集特点、编译器优化历史等等都有涉及,这部分内容就不再翻译了,因为内容过于专业,大部分人都不是专业人士,读起来晦涩难懂,同行超能网为我们选取了其中的重点内容。
编译器有各种各样的,Behardwar的测试以使用最多的C/C++编译器作为测试对象,编译环境是微软的VS 2010 SP1、Intel的C++ Compiler XE 12.0u5以及TDM-GCC (MinGW/GCC 4.6.1)三种,
VS 2010 SP1
TDM-GCC (MinGW/GCC 4.6.1)
重要问题:AMD为什么没有自己的编译器
这个要着重写一下,Intel在CPU上有优势主要是因为他们有自己的编译器,为什么AMD没有?这倒不是说AMD不关注这个问题,因为他们主要选择了跟其他厂商或者开发组织合作。首先,AMD也参与了GCC编译器工程,而微软开发VS时也会跟AMD及Intel保持合作以便对他们的CPU作出公正(微软语)而又统一的优化支持。
另外,AMD赞助并推广了Open64编译器,它脱胎于一个编译器研究计划,后者最早是Intel赞助的、针对安腾架构所优化的编译器项目。安腾架构或多或少地应用了VLIW指令,每条指令其实包含三条指令,可以由三个超标量单元执行。它实际上超越了编译器,在安腾架构上可以选择混合哪条指令以获得最大性能,这是一个非常困难的任务。
后来,Intel不再继续这个项目了,AMD还在选择性支持部分Open64编译器,Intel只在Linux平台下才支持Open64,这就与本文无关了。
测试平台及软件说明
测试的CPU前面已经提过了,是Core i7-2600K、AMD FX-8150以及上一代的Phenom II X4 975这三颗,他们支持的指令集也不一样,适合对比,具体如下:
·Intel Core i7 2600k:Sandy Bridge架构,支持所有的SSE、AVX指令集,除了SSE4a
·AMD Phenom II X4 975:Deneb架构,支持最高SSE4a
·AMD FX-8150:(Bulldozer架构,支持所有的SSE、AVX指令集,包括SSE4a
需要说明的是SSE4a指令是AMD支持的指令,而Intel从没支持这个指令。它实际上使用的也非常少,后面的测试中只有一个例子用到了这个指令,而X4 975也不支持任何SSE 4.1或者SSE 4.2指令。
另外,SSE 4.1与SSE4a之间只有很少部分是重叠的,大部分应用都不支持,这也为Intel的编译器带来了一些问题。
测试平台配置
主板:华硕P8Z68-V Pro (Intel)、华硕M5A97-Evo (AMD)
内存:2×2GB DDR3 1600MHz
显卡:Radeon HD 5450
硬盘:海盗船F120
操作系统:Windows 7 SP1
测试程序
测试使用的主要是SPEC 2006 v1.2,2011年9月的新版本,具体内容不表。
本文收录在
#Intel
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...