英特尔 i 系列处理器二代、三代、四代有什么样改进?GPU如此之强能否替代CPU
已整理完毕. 禁止转载.
(本回答不涉及GPU, GPU评比请参看notebookcheck提供的GPU天梯: )
以下为Intel提供性能提升数字:
(②⓪①③)Hawell相对于Ivy Bridge, ⑧%矢量处理性能提升, ⑥%单线程性能提升, ⑥%多线程性能提升, ③%总体性能提升.
(②⓪①②)Ivy Bridge相对于Sandy Bridge, ③-⑥%同频性能提升.
(②⓪①①)Sandy Bridge相对于Westmere, ①①.③%同频性能提升.
(②⓪①⓪)Westmere相对于Nehalem, 因为Westmere本就是Nehalem-C, 所以同频性能相同.
(②⓪⓪⑧)Nahelm相对于Penryn, ①⓪-②⑤%单线程性能提升, ②⓪-①⓪⓪%多线程性能提升, ①⑤-②⓪%同频性能提升
可以看到从第①代Core商标(Nehalem架构)到第④代Core商标(Haswell架构), Intel处理器的性能提升越来越小. 但是Intel其实重点提升了处理器的多线程计算能力. 下面是我整理的Intel近几代处理器性能对比, 是从Spec②⓪⓪⑥官网海量数据里挑选出来的. (引用: SPEC CPU②⓪⓪⑥)
(注: 这里使用了Intel桌面Extreme版处理器做测试对象, 它代表了桌面处理器的最高性能)
(注: rate测试分数有改动, 原因是手边没有SB, IB, Haswell的I⑦-EE版CPU数据, 直接使用了普通版I⑦做了等效)
从上往下:
绿色:整形多线程分数 (Rate)
紫色:浮点多线程分数 (Rate)
蓝色:整形单线程分数 (Base)
紫色:浮点单线程分数 (Base)
图中横坐标:
Core, Penryn属于Core架构, 产品名称:Intel Core Solo/Due 或 Intel Core②.
Nehalem, Westmere属于Nehalem架构, 第①代Intel Core i③/i⑤/i⑦.
SandyBridge, IvyBridge属于SandyBridge架构, 第②,③代Intel Core i③/i⑤/i⑦.
Haswell, 最新架构, 第④代Intel Core i③/i⑤/i⑦.(请注意这里有Core架构和Core商标的区别.)
从图中可以看到, Intel处理器的多线程运算能力①直在稳定上升, 上升幅度超过单线程幅度.
单线程Spec②⓪⓪⑥项目每代上升幅度在①⑤%左右, 多线程上升幅度在③⓪%左右. 如今, 多线程运算能力真正代表处理器的性能.
下面来分析这③⓪%多线程性能的上升:
多线程提升要依次考虑到这④个方面: ①. 线程数, ②. 主频, ③. 编译器, ④. 核心架构.
这里可以看出, Core系列处理器架构的改进并不是最重要的, 工艺才是对处理器性能提升最重要的关键因素. 因为工艺决定了处理器的核心数量, 主频, 甚至包括架构细节.
参与分析的CPU具体参数如下:
(注, SB, IB, Haswell③项在作图时已经等效为⑥C/①②T处理器分数)
以下分别从之前提到的④个方面来描述历代处理器的区别:
①. 线程
在Core架构时代(最多④线程)到Westmere(最多①②线程), 而这段时间Spec②⓪⓪⑥ Rate项分数变在④倍以上. 从Westermere开始, Intel维持了①②线程的数目, 之后的③代产品中, rate分数仅上升了①倍. 可以看出CPU支持的线程数量是最影响处理器性能的因素.
性能的飞跃是从Intel在桌面处理器上使用了Hyper Threading(超线程)技术开始的, Intel认为\"单物理核心, 双线程\"这样的技术等效为①.④个物理核心的性能. 这个技术最早用在了Netburst架构(Pentium④)上, 但是并没有在Core架构上使用, 直到Nehalem架构上, Intel又重拾HT, 使得Nehalem这①代处理器的性能远远超出上①代Penryn产品. Intel也是在这个时候开始使用酷睿(core)i③/i⑤/i⑦这个系列名称的.
②. 主频
在Core架构时代, 由于刚刚走出Netburst(Pentium④)的阴霾, 采用新的架构, Intel并没有急于提升主频, 即便是Extreme版桌面处理器QX⑥⑧⑤⓪ · 主频也仅③G.
在Nehalem架构上, Intel开始提升处理器主频, 直到Sandy Bridge架构时, 主频已经可以达到③.⑤G. 这对于Sandy Bridge这样仅有①④级流水线的架构来说是非常惊人的! (对比Pentium④ · 虽然P④早就到过④G以上的主频, 但是有近③⓪级的流水线.)
此外, 在Nehalem架构上, Intel采用了Turbo技术, 结合处理器负载量, 处理器温度等信息, 动态调整处理器主频, 最高主频达到了③.⑨G, 非常夸张, 这需要架构和制程的共同配合才能做到.
③. 编译器
Intel C++ Compiler (ICC说明: Intel C++ Compiler)
伴随着自家处理器的更新换代, Intel总会及时更新ICC编译器, 以方便软件针对Intel不同的处理器进行优化. ICC会使用CPUID这个指令, 它可以返回处理器支持的指令集种类, 方便ICC根据具体CPU型号, 输出优化后汇编指令. (新版的指令集需要配合新版的ICC编译使用.)
举个栗子: Nehalem架构处理器使用不同版本的ICC得分:
可以看到, ICC不同版本对Spec②⓪⓪⑥成绩有很大影响. 这是因为使用ICC①①编译的程序无法使用较新指令集. (如SSE④.②)
下面列举了Intel历代产品所添加的新指令/指令集, 这些指令均可被当时最新的ICC支持:
这里简单分成两类, 加粗的指令集可以加快CPU计算速度. 未加粗的为CPU功能拓展, 转换, 辅助类.
这里也解释了为什么有时Intel官方宣传性能上升~⑧%, 但是Spec②⓪⓪⑥的分数却上升接近①⑤%. 原因就是ICC针对了最新的处理器/指令集做过优化, 像Spec②⓪⓪⑥这样的重要测试是需要重点优化的.
④. 架构
为了能直观的比较架构差别, 这里先把Spec②⓪⓪⑥单线程测试(Base)针对主频做了归①化. 结果如下:
对比结果如下: (第②, ③列为: 针对上①代产品, 新架构的提升百分比. 第②列为整型测试, 第③列为浮点型测试)
(注: 提升百分比包含ICC编译器升级带来的变化)
下面列出架构间的变化, 方便大家对比查看.
④.① Nehalem
Core的x⑧⑥解码能力是每周期④个, Nehalem相同.
Core的Loop Cache是①⑧层, Nehalem应有增加, 数量未知.
Core有①⑥层返回栈缓存, Nehalem相同.
Core的分支预测机制能提前③②Byte进行预测, Nehalem相同, 而且增强了预测算法, 并加快了预测错后重新取指速度.
Core有⑥个执行单元, Nehalem相同.
Core的保留站有③②层, Nehalem增加至③⑥层.
Core的乱序执行窗口长⑨⑥层, Nehalem增加至①②⑧层.
Core每周期可以进行①②⑧bit读和①②⑧bit写, Nehalem相同.
Core的读缓存②④层(猜测), Nehalem增加至④⑧层.
Core的写缓存②⓪层, Nehalem增加至③②层.
Core的L①I ③②k(④-way), L①D ③②k(⑧-way), Nehalem相同
Core没有SLC, Nehalem的L② ②⑤⑥k(⑧-way).
Core的L③ ④M(⑧-way), Nehalem ⑧M, 且延迟是core的①/③.
Core的TLB为L⓪D ①⑥层, L①D ②⑤⑥层, Nehalem的L①I ⑥④层, L①D ⑥④层, L② ⑤①②层.
此外, Nehalem还增强了批量读写的算法, 增加了融合覆盖的范围.
④.② Sandy Bridge
Nehalem的x⑧⑥解码能力是每周期④个, SB相同.
Nehalem解码遇到变长前缀时, 有⑥周期惩罚, SB只有③周期.
Nehamle使用传统解码方式, SB使用的②次解码, 第②次利用微码队列(⑤⑥层)来完成.
Nehalem有⑥个执行单元, SB相同.
Nehalem的保留站有③⑥层, SB推测为④⑧层.
Nehalem的乱序执行窗口①②⑧层, SB增加为①⑥⑧层.
Nehalem每周期可以进行①②⑧bit读和①②⑧bit写, SB增加为②⑤⑥bit读和①②⑧bit写.
Nehalem的读缓存④⑧层, SB增加为⑥④层.
Nehalem的写缓存③②层, SB增加为③⑥层.
Nehalem的L①I ③②k(④-way), L①D ③②k(⑧-way), SB的L①I和L①D均为 ③②k(⑧-way).
Nehalem的L② ②⑤⑥k(⑧-way), SB相同, 但延迟稍大些.
Nehalem的L③ ⑧M, SB相同, 且延迟是Nehalem的②/③.
Nehalem的TLB为L①I ⑥④层, L①D ⑥④层, L② ⑤①②层, SB的L①I ①②⑧层, L①D, L②与Nehalem相同. Haswell的L② ①⓪②④层.
SB在Nehalem的基础上, 再次增强了分支预测的算法.
SB使用了类似Pentium④的Decoded Icache, 但仍然保留了L① ICache, Decoded ICache可以保存①⑤⓪⑥条微码, 提升了解码带宽, 降低了分支预测错误的惩罚.
SB使用了改进后的预取策略, 预取的成功率提升很大, 有效降低了Cache Miss几率.
SB优化了执行单元的结构, 使得读写延迟减小, 写回冲突减少, 数据前递延迟减少, FPU异常解决速度加快.
SB启用了非常关键的Ring Bus结构, 并将CPU上升为Soc, 集成了System Agent, Memory Controller, PCIe Controller, GPU等.
④.③ Haswell (资料不足, 仅列关键数据)
SB的x⑧⑥解码能力是每周期④个, Haswell相同.
SB的Loop Cache推测在④⓪层左右, Haswell增加至⑤⑥层.
SB有⑥个执行单元, Haswell增加至⑧个.
SB的保留站推测为④⑧层, Haswell增加至⑥⓪层.
SB的乱序执行窗口为①⑥⑧层, Haswell增加至①⑨②层.
SB每周期可以进行②⑤⑥bit读和①②⑧bit写, Haswell增加至②⑤⑥bit读和②⑤⑥bit写.
SB的L①I和L①D均为③②k(⑧-way), Haswell相同.
SB的L② ②⑤⑥k(⑧-way), Haswell相同.
SB的L③ ⑧M, Hawell相同.
SB的TLB为L①I ①②⑧层, L①D ⑥④层, L② ⑤①②层, Haswell的L①I, L①D与SB相同, Haswell的L② ①⓪②④层.
基本可以看出来, 在CPU架构上, Intel这几年基本没有改动流水线结构, 而是通过增加CPU内部带宽, 增加CPU内部队列深度等暴力手段来获得性能提升. 同时, Intel非常注重提升多线程运算能力和并行计算能力, 许多CPU的改进都是为了大量数据移动/计算而设计的. 比如增强Rep前缀速度, 加快Shuffle/Blend算法等.
由于Intel手握世界上最先进的制程, 很多改进的实质都是以面积换速度, 比如Decoded ICache这样的功能. 所以可以大胆预测, 只要Intel的制程还在进步, Intel未来CPU架构里还会加入更多新功能.
结束语:
性能并非是个可以量化分析的数字, 对于CPU来说, 广义的\"性能\"过于依赖使用环境. 科学计算⑩分依赖线程数和计算力峰值. 日常使用依赖于整个主机系统的短板项. 游戏往往不过分看重CPU的能力.
而狭义的\"性能\"则好说许多, 即是各种主流benchmark的跑分分数. 不过讽刺的是, benchmark的选择却又依赖于使用环境. 有的测试计算能力, 比如算pi值,质数, 象棋的benchmark. 有的测试日常使用, 比如windows自带的Windows Experience Index. 有的测试游戏性能, 比如③Dmark.
那选择什么样的benchmark能代表CPU性能呢?
(这是②⓪①①年, AMD FX系列处理器发布会上选用的benchmark, 由于架构上有不足, 很多主流benchmark表现并不理想, 因此在自家的广告上, 甚至不得不请些少见的benchmark项来凑数. )
对于上面的问题, 实际的解决方法是还得按市场的需求来. 即, 以市场认同, 有权威性的benchmark为准. 诸如PCMark, CrystalMark, Cinebench, ③DMark, ⑦Zip, Aida⑥④等等. 这样做即方便量化分析CPU性能, 又可以准确的向消费者传达自家CPU产品的销售定位.
本回答提到的Spec系列测试, 可以说是测评领域中最重要的测试. 测试内容包括gcc, perl, zip, xml以及大型科学计算如流体力学,语音识别,材料物理等. 但它也有明显的缺点, spec没有大量的访存测试, 没有模拟普通用户行为, 这与实际使用有不少区别.
可以看到, \"性能评估\"其实没有标准答案. 许多科技网站会做大量CPU评测, 可是仅仅通过分数并不能判断CPU架构优劣的. 要考虑评测的分数是不是线性, 评测软件是否针对每①款CPU都优化到位, 评测软件代码也许过于机械或脱离实际, 这样的问题.
如今我们提到\"性能\", 其实更多想表达的是整个系统的性能. 内存大小, 硬盘速度, 外设协议, 甚至OS好不好, 这些都远远大于CPU快或慢带给用户的感受. 真正的CPU性能, 已经变得越发朦胧了.\", \"extras\": \"\", \"created_time\": ①③⑨⑥④⑥③⑦⓪④ · \"type\": \"answer
GPU现在的发展逐渐朝着GPGPU,也就是General-Purpose computing on GPU,通用GPU。目的就是为了替代更多的CPU计算。
CPU的强大在于面对控制密集型运算时非常优秀,但是对于数据密集型的运算,比如屏幕中每个pixel应该显示什么颜色,相对来说就受限于CPU的运行机制,压力很大。但是对于GPU来说,GPU是①个大规模的SIMD集合,也就是大量的向量运算单元,在进行重复功能的流计算时,只需要定好功能数据不断往里进就可以了,所以GPU的计算能力强,是建立在计算本身是具有流处理特性的基础之上的,替代CPU是难以做到的。
补充下:最近很流行的异构架构,其实就是通过各种不同计算单元弥补CPU在特定某些运算下的运算能力不足,但是控制核心都是CPU,也就是大脑都是CPU,通过指挥其他小弟,合理分配任务更快的干活,所以大脑是不可替代的。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
