即将到来的多核革命:希望、风险及影响(一)

hy1203hy 2007-09-19 06:04:30

简介
本文的标题是“即将到来的多核革命:希望、风险及影响”,顾名思义,既可以看作是对如今多核处理器的意义做出解释,也可以看作试图从多种不同角度让人了解多核处理器的作用的一种期望。我们更倾向于后一种方式,因为随着时间的推移,多核处理器将在计算行业的转型中扮演不同的重要角色。

本文旨在深入讨论微处理器设计领域中“平衡”与“优化”的含义。
章节1介绍了术语表。
接下来的章节将按时间顺序排列,展示随着时间的推移,微处理器设计中“平衡”与“优化”复杂度的逐步提高。
章节2回顾了“我们为何开始设计多核处理器?”。
章节3讨论了与多核处理器相关的系统与软件设计领域的发展情况。
章节4根据目前趋势预测未来的复杂度。
在文章结尾,我们还预测了日渐成熟的多核处理器技术的未来发展。

背景
1.1. 核心概念
在试图介绍多核计算发展之前,我们有必要先在术语和目标方面达成共识。令人讶异的是,这一领域中的很多常用词汇用在计算产品的生产方、采购方和用户方,涵义迥然不同。若针对这些不同的涵义进行研究,将显著增加复杂度和权衡取舍的难度,而它们对于工程设计流程却是至关重要的。

1.1.1. 平衡
对于“平衡”,韦氏在线辞典共列出了 12 个定义,其中与本文关系最为密切的定义有两个。
第5项
a:由于在垂直轴的两端分布等量的重量而产生的稳定性。
b:在对比、对立或交互元素间的均衡性。
c:账目两端的总值相等。
第6项
a:在美学意义上多个元素的完美整合

在计算机系统中,人们对于“平衡”的理解多是这两种概念。前者是定量、分析性的,但却试图迅速将这一定义结合到各种复杂因素之中。计算机系统应该在哪些属性上体现出“对称分布”?我们认为,这些重要的属性包括:成本、价格、功耗、物理尺寸、可靠性以及众多相对独立的性能属性的任意主体。在选择哪些属性实现“平衡”,或如何将多种属性比较整合成单一的“平衡”标准时,将不会存在显而易见的“正确答案”。

当考虑计算机系统的多维设计/配置空间时,“平衡”的美学定义带有设计者强烈的个人色彩,但应用到工程和业务空间上时,如果忽略定量因素,则会使整个 “平衡”概念失去效用。

这些标准定义的缺乏表明了一种不容忽视的微妙关系。在本文中,我们很高兴能够继续使用“平衡”一词,但需要指出,在清晰定义的定量环境中(包括如何将它们组成单一的优化问题),该词只具有数量含义。

1.1.2. 优化
对于“优化”,韦氏在线辞典中仅列出 1 个定义:

使事物(例如一个设计、系统或决策)尽可能完美、起作用或有效的一种行动、流程或方法;具体指参与其中的数学程序(例如找到函数的最大值)。

对于此术语,计算机用户最常见的使用错误,是错误地将编译器理解为“优化器”,在此情况下,往往只将“优化”用作“改进”的同义词。虽然词意相近,但优化(在其数学含义中)指的是在存在约束的条件下(也可能只是由目标功能自身产生的约束限制),将特定的目标功能最小化或最大化。与之对照,“改进”是指“使事物变得更好”,并不具有“优化”概念中至关重要的“权衡”的意义。
计算机系统设计中的优化是指,选择使特定目标功能最大化或最小化的参数,同时,还通常为其他目标功能提供“次级优化”解决方案。在普遍使用的目标功能中,有很多参数相互矛盾,例如,低成本与高性能、低功耗与高性能等。设计参数一旦相互抵触,就将根据具体目标功能的量化公式找到“最优”设计点——例如明确要求,提升10%的性能(或把功耗降低 10%)对其他设计目标会产生怎样的影响?

1.2. 方法
为撰写本文,我们将使用一个带有调整后的系数,并最适应SPEC_fp2000和SPECfp_rate2000基准测试大型子集(截至2006年 3 月)的分析模型,估算多种配置选项的性能影响。
该分析模型包括508个SPEC_fp2000结果730个SPECfp_rate2000结果。另有233个结果被排除在分析之外,因为它们使用了先进的编译器优化或特殊的硬件配置,而这都会导致其与大部分结果进行比较毫无意义。

前面已经对该性能模型进行了介绍,但是,此处对其进行了扩展以纳入更完整的数据集,并已经将它应用到每个SPEC_fp2000基准测试结果的14 个测试项目和几何平均值中。虽然该模型没有捕捉这些基准测试的某些性能特征细节,但它对大量结果进行最小二乘法,能够大幅度减少与单个结果相关的随机“干扰”,并提供很高的平台独立性。

简而言之,该模型假定每个基准测试的执行时间为“CPU 时间”和“内存时间”之和。其中,内存子系统完成的“工作”数量是缓存规模的简单函数,从“大型”缓存(其中“大型”也是该模型的一个参数)最大值线性减少到无缓存的最小值,对大于大型规模的缓存,内存工作量恒定不变。假定 CPU 工作的完成率与芯片采用 64 位 IEEE 算法的峰值浮点性能成正比,而内存工作的完成率与系统在 171.swim(基础)基准测试上的性能成正比。此前的研究已经显示,在 171.swim 基准测试上的性能和使用 STREAM 基准测试直接测量的持续内存性能之间有很强的联系。

该模型的模拟结果与测量结果有很强的相关性,75% 的测量结果都具有15%的模拟映射。这指出,基础的模型假设与这些系统在这些基准测试上的实际性能特征一致。虽然模型中存在某些体系性错误,但模型与观察结果之间的差异并非都来自于硬件假定的过度简化,很多差异也可能来自于编译器、编译器选项、操作系统和基准配置方面的差异。总的来说,该模型足够健壮,可以作为说明微处理器系统中性能和性能价格比灵敏度的基础。
1.3. 假设与建模
为进行性能和性能价格比分析,我们将假定:
双插槽“裸”系统(带有磁盘、内存和网络接口,但没有 CPU)成本为 1,500 美元。
基本CPU 配置为 2.4 GHz 单核处理器,配备 1 MB L2 缓存,成本为 300 美元。
Die设定为CPU 核心和L2 缓存约各占一半,其他片上功能限制在Chip全部区域的小区间中。
“小型芯片”配置为 2.8 GHz 单核心处理器,配备 1 MB L2 缓存,成本为 150 美元。
“大缓存”配置为 2.8 GHz 单核心处理器,配备 3 MB L2 缓存,成本为 300 美元。
“多核”配置为 2.0 GHz 双核心处理器,每个核心配备 1MB L2 缓存,成本为 300 美元。

2. 多核心芯片最初的开发
多核心处理器最初的开发在很大程度上要归功于 CMOS 光刻印刷工艺的持续进步。众所周知,随着CPU 核心的尺寸/带宽的不断提升,很快就会造成投资回报的递减。所以当核心的尺寸工艺收缩到一个小尺度上后,出于对Die经济可行性的考虑,制造商通常有如下选择:
• 生产更小的芯片
• 增加大量缓存
• 增加更多核心
增加更多内存带宽的选择显然会增加大量处理器芯片之外的成本,包括修改主板(如许多PCB层的改动)、增加DIMM插槽等。由于这些额外成本和插槽不兼容的问题,增加更多内存带宽将被单独考虑,与涉及Die尺寸的选项不相关。
图 1 和图 2 显示了一些与这三个选项相关的性能和性能价格比指标,假定光刻印刷面积缩减30%(即区域缩减50%),支持单核心频率提高17%,但需要双核心频率降低17%(以保持相同的功耗水平)。
注意,SPECfp_rate2000基准测试包含14个独立的测试,它们均单独建模。这些可以总结为:最小提速、中值提速、几何平均数提速和最大提速。对于双核心处理器选项,要同时估算单核心 (uni) 和双核心 (mp) 提速。


图 1:针对三种系统配置进行SPECfp_rate2000 性能评估(基于章节 1 中描述的分析模型),假定光刻面积缩减30%(区域缩减50%),相应地,单核心芯片频率提高 17%,双核心芯片频率降低 17%。小型芯片的尺寸为参考芯片的½,同时,大缓存和双核版本扩展到与参考芯片相同的尺寸,且电源需求与参考芯片相同。注意,大缓存情况下的最大提速为+156%,但由于此处的图形范围限制而被截断显示。


图 2:针对三种系统配置的SPECfp_rate2000/价格评估(基于章节 1 中描述的分析模型),假定光刻面积缩减30%(区域缩减50%),相应地,单核心芯片频率提高 17%,双核心芯片频率降低 17%。
依次观察这三种选择:
2.1. 生产更小的芯片
显然,量产那些时钟频率仅满足基本需求的更小/更便宜的芯片,在为客户提升性能和性能价格比方面价值不大。在此例中,处理器价格的下降可以将系统整体成本降低 14%(1,800 美元比 2,100 美元),而 17% 的频率提高可以在性能方面带来 0% 到 14% 的提升,中间和几何平均数提升为 8%-9%(图 1)。这两种因素的结合可以提供 17% 到 33% 的性能价格比提升,其中间和几何平均数性能价格比提升为 27%-28%。
2.2. 增加大量片上缓存
与其他选择相比,增加大量缓存为所有工作负载带来的提升变化范围更大。在此例中,将 L2 缓存从 1 MB 提高到 3 MB 可以带来 0% 到 127% 的性能提升,其中值提升为 0%,几何平均数提升为 11.8%。
17%的CPU频率提升与缓存规模提升相结合可以带来更多收益,二者结合的性能提升为0%到156%,中值提升为11.5%,几何平均数提升为22.5%。
在此情况下,假定芯片的成本与参考系统相同,则性能价格比的提升比率与纯性能提升比率相同。

...全文
550 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧