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

king1203 2007-09-19 06:23:15
1.1.1. “杀手级”微处理器
到 2000 年初,日益商品化、高产量的x86架构的服务器与基于专用 RISC 架构的服务器相比,已具有绝对的性能优势,且高产量服务器能够提供更优越的性价比。转向小型RISC SMP 的趋势使得向小型x86 SMP 的迁移也更为简单。
2003 年,随着基于 AMD64 架构处理器的推出,提供了更高的性能和真64 位寻址能力及整数算法,这一趋势获得了极大的发展动力。英特尔紧随AMD之后推出了 EM64T 架构,从而在几年内,导致了一次声势浩大的将绝大多数 x86 服务器业务从 32 位迁移至 64 位硬件的无缝迁移。
这些趋势并不能说明客户对 SMP 缺乏兴趣。他们确实有兴趣,但是,这些趋势可以说明,众多客户都对大型 SMP 系统所提供功能的价格较为敏感。由于价格差异巨大,市场自然会找到如何使用价格更便宜硬件的途径。
正如RISC SMP市场最终产生了大量进行并行处理编码的ISV(在企业与技术计算方面)一样,多核心x86处理器也将推动更多大型软件的并行化,并显著降低目前小型服务器的价格。
与1990年代的 RISC SMP 市场不同,如今的多核心处理器不会依赖于片外 SRAM 缓存,可对其进行配置以避免产生成本高昂的芯片到芯片的相干性流量(可以通过监听过滤器,也可以简单地使用单芯片服务器,例如Sun T1/Niagara)。也许除了移动/低功耗设备之外,没有任何一个通用CPU的竞争者能够明确地以更低的价格提供更高的 x86 性能。


长期预测
1.2. SoC(SMP on a Chip)
在1990年代中后期,RISC SMP 市场的主流是 4、8 和 16 路 SMP。这种“利润最丰厚”的市场,提供了额外的CPU能力来证明应用并行化的效果,而不会产生让人无法接受的成本开销,也不会为应用提供过多无法有效利用的处理器。
目前的趋势是,数年内将能够在单一芯片上实现类似的 SMP尺寸,从而据此做出多方面的预测:
• 在1990年代,RISC SMP 打开了 UNIX 服务器市场,多核芯片能否以与之相同的方式打开并行代码的新市场?
• 为了有效利用多核处理器芯片,是否需要在架构或编程模式上进行根本性改变?或并行应用能否凭借自身的力量发展,还是需要架构方面的增强(如transactional memory)?
• 提高单一芯片的核心/线程数量,是否能够消除绝大多数用户对于更大型 SMP系统的需求?
即使对于单插槽或双插槽系统,每个芯片上核心数量的提高,将会使用户混合运行多线程和单线程作业(这些作业不会使用全部 CPU 核心),更像最近10年中的大型SMP服务器,而不是传统的使用模式。即使是在这些小系统中,核心数量的日益增多也可以扩展虚拟化的采用,支持多个客户操作系统使用各自专用的核心,但竞争使用内存空间、内存带宽、共享缓存及其他共享资源。
1.3. 设计空间的爆炸式增长
在本文开头的简单示例,已经讨论了在定义适当的微处理器芯片指标参数时的复杂性和相当有限的自由度(例如,一或两个核心加上小容量或大容量缓存)。AMD最初销售的双核处理器基于90纳米的工艺技术,年中即将推出的四核Barcelona将基于 65 纳米工艺技术。采用 45 纳米技术,AMD能够将内核数量再翻一倍(8 个内核);而采用32 纳米技术,AMD则将能够将内核数量再翻一倍(16 个内核),同样22 纳米技术还能够令AMD将内核数量再翻一倍(32 个内核),而这一切都是切实可行的。
最近的研究表明,无论从设计或应用性能的角度来看,CMP 设计空间都是多维的。但问题是,性能与性价比指标的定义已经发展出了很多层次的自由度。若每个应用都拥有不同的单线程性能、多线程性能、单线程性价比和多线程性价比设计点,将更难以做出决定。而且,CPU产量与不断增加的独立“最优”设计点,也将成为芯片产业即将面临的主要挑战。
1.4. 异构化
显而易见,假设不同的资源的成本不同,同类多核芯片不能面向不同工作负载进行优化。若将设计空间扩大加入异构处理器核心,则可增加很多新的自由度。内核间可能不同的参数包括:
• 基本 ISA
• ISA 扩展
• 缓存容量
• 频率
• Issue宽度
• 乱序功能
这一额外的自由度令同质化的多核设计产生了无数的新可能性,既令人兴奋又令人畏惧。
当然,多核心处理器将不限于仅包含 CPU。既然三维图形处理卡已经广泛整合到移动、客户端和工作站系统中,那么将图形处理单元(或图形处理单元的一部分)集成到处理器芯片上应该是自然而然的(详情请参阅 AMD 已发布的“Fusion”计划)。其他类型的异构架构也将成为未来合乎逻辑的选择,但目前来看,好像还没有哪个AMD的竞争对手进行过具有大规模处理器生产意义上的异构化尝试。

1.5. 核心过多?
虽然片内集成4 到 8 个 CPU核心的短期展望着实令人兴奋,但是,从更长期的角度来看,片内集成32、64、128、256个核心也将带来其他挑战。
1990年代末,在 RISC SMP 市场的鼎盛时期,大型(8 路到 64 路)系统成本昂贵,且几乎始终共享使用。单个用户基本不用担心找不到足够多的工作使 CPU保持忙碌。与之相反,即将推出的多核心处理器芯片将是价格适中的商业化产品。个人将能够轻松地负担多个CPU,超过以往“任务并行化”所需要的CPU数量。例如,在 2004 年,一台基于 AMD 或英特尔单核心处理器的高配置双插槽服务器售价为 5,000 到 6,000 美元,拥有5万美元预算的科研人员/工程师,可以购买大约 8 台服务器(16 个内核)以及足够的存储与网络设备。自 2000 年开始,这类系统的数量剧增,很多用户发现在小型集群上,运行独立串行作业时,或仅在一个服务器内进行并行作业(使用 OpenMP 或明确的线程)时,可以充分使用这些小集群的资源。
若厂商提供近乎同样的价格,则使用相同的预算,采用16核的处理器将总共获得256 个核心。科研人员/工程师用户基本不会有数量如此巨大的独立作业(通常,通过参数检查、敏感度分析或整体统计产生),也不会考虑改进此吞吐量,以提高单一作业性能。
更进一步的设想,若使用 5万美元能采购128核的芯片,将获得 2048 个线程,这将使绝大多数用户编程和使用计算机的方式发生根本性变革。因此,多核心处理器开发人员的任务很艰巨,他们必须简化多核心处理器的开发,以提高单一作业的效率。并且,如果多核用户能够提前于自己的竞争对手,率先开发出此并行机制,则该用户将获得更多的竞争优势。

1.6. 带宽情况如何?
相对处理器的性能增长速度,内存带宽的提升速度相对要低的多。通过提高管线能力,DRAM 技术已从根本上改进了自身性能,但这种方法也已经接近其实际极限了。驱动DRAM命令与数据、消化来自 DRAM 的数据、发送/接收数据以及探测/监控往返于其他芯片间的流量等产生的功耗,正日益成为大量电力消耗的主要原因。
如果一个CPU最大浮点性能只支持小于 0.5 GB/s 的主内存带宽,则其在市场中获得成功的几率将明显降低。举例来说,若希望使用 8 个核心,且每个核心每个周期可以以 3 GH 频率速度进行 4 次浮点操作,则毫无疑问,100 GFLOPS(峰值)芯片也非遥不可及,而只能算是合理的中期预期。
另一方面,每个处理器芯片要保持 50 GB/s 的内存带宽,成本也极为昂贵。即使使用 DDR2/3 DRAM 技术,提供 1600 MHz(每个 64 位通道 12.8 GB/s)的数据传输率,则实际上,要保持所期望的内存带宽水平也将需要很多通道(102.4 GB/s 峰值带宽大概需要 8 个通道),这就意味着至少需要 8 个 DIMM,并需要丢弃类似 40 个出色的缓存,以实现 50% 的利用率。(若内存延迟为 50 ns,则 102.4 GB/s 的延迟带宽为 5120 字节,或每 64 个字节延迟 80 个缓存线。所以,共需要约 40 个并发缓存线传输,以保持 50 GB/s 的目标带宽。)
2. 总结与结论
本文的文字与图例说明,在多核心处理器带来的巨大机会和挑战面前,我们才刚刚开始。AMD最初的前进步伐一直受到技术的限制,只能对系统的整体平衡做有限的提升,但是,技术的发展趋势使AMD清楚地看到,未来工艺技术所提供的灵活性将给业界带来大量机会,使AMD能够设计出在功耗、性能和成本特性方面有显著提高的基于微处理器的系统(例如Barcelona和Fusion)。
对于计算产业而言,通过生产标准化的产品来保持高产量,通过创建种类丰富的产品来提高性能、每瓦性能和性能价格比之间的相互牵制,将成为整个行业的主要挑战。即使我们试图保持适度数量的“快速”核心,工艺技术也将支持我们提供超过用户当前的有效使用能力的核心。这将需要整个产业、学术界和计算机用户共同合作,开发出新的方法,能够利用多核心完成“日常”应用,利用片上通信的物理位置实现前所未有的、耦合更为紧密的并行机制。

资料:加速系数与Amdahl定律
衡量多处理器系统的性能时,通常要用到的一个指标叫做加速系数,定义如下:
S(p) = 使用单处理器执行时间(最好的顺序算法)/ 使用具有p个处理器所需执行时间
Amdahl定律的传统方程式表示方式:
S(p) = p / (1 + (p-1)*f)
其中 S(p)表示加速系数
p表示处理器的个数
f表示串行部分所占整个程序执行时间的比例
当f = 5%, p = 20时, S(p) = 10.256左右
当f = 5%, p = 100时, S(p) = 16.8左右





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

50,528

社区成员

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

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