服务器 频道

AMD:多核革命的希望、风险及影响-中

    【IT168 专稿】上篇通过SPEC_fp2000和SPECfp_rate2000基准测试,比较了三种CPU设计方案(更小的芯片、增加缓存、增加核心)在性能和性价比方面的不同表现和优劣势。

    中篇将讨论多核处理器在短期内需要解决的一些问题,如功耗问题、单/多线程性能矛盾、最优核心数量等,为此,作者还对传统的Amdahl 定律进行了适当修改。此外,文章还从技术和市场的角度对多核芯片与RISC SMP进行了比较,作者认为这二者之间存在一定的相似性,而且,64位多核处理器对RISC市场构成了挑战。

    下篇,作者从长远角度,对未来多核处理器的方向性问题进行了一些探讨,如片上SMP、异构多核、核心过多、内存带宽等问题。

AMD专家:多核革命的希望、风险及影响-上
——三种CPU设计方案

第1页:三种CPU设计方案
第2页:三种方案对CPU性能和成本的影响

AMD专家:多核革命的希望、风险及影响-中
——多核处理器发展中的当前问题和短期问题

第3页:功耗问题也很复杂
第4页:单线程性能和多线程性能的矛盾
第5页:多核芯片与RISC SMP的相似性
第6页:X86冲击RISC-打破系统平衡
第7页:小型SMP和大型SMP的性价比差距越..
第8页:多核X86处理器的性价比

AMD专家:多核革命的希望、风险及影响-下
——多核处理器发展方向的长期预测

第9页:在芯片上实现SMP系统(SoC,SMP o..
第10页:CPU设计时有更大的灵活度
第11页:异构多核芯片中不仅有CPU,还有GPU
第12页:核心过多带来的问题
第13页:内存带宽是多核系统的瓶颈
第14页:总结与结论

1)功耗问题也很复杂

    跟性能一样,功耗问题也会比你想象的要复杂得多,同样会涉及多个方面。在基于高性能处理器的计算机系统环境中,“功耗”问题可能意味着以下任何一种情况:

    • 通过众多超细针脚/焊点传送到芯片的大量电流。(注意:即使在同样的功耗水平下,随着电压下降,电流上升,针脚/焊点内的热阻也将升高。)

    • 消除大量热量,以防止Die温度超过阈值,明显缩短产品寿命。

    • “热点”问题:芯片局部区域中的功耗密度过高可能将导致局部故障。(注意:若为了保持同样的功耗水平,将晶圆上的处理器内核尺寸减少一半,同时提高频率,则内核中的功耗密度将提高一倍。)

    • 为提供计算服务,需要为系统设备提供大量电力——包括电力成本和用电升级成本。

    • 消除放置服务器所需基础设施所产生的大量热量——包括电力成本和机房冷却系统升级成本。

    • 消除处理器芯片造成的大量热空气,以免影响其他热敏组件(如内存、硬盘等)。

    由此可以看出,功耗问题实际上至少与5、6个相关而性质截然不同的技术问题和经济问题有关。

2)单线程性能和多线程性能的矛盾

     下面,我们需要进一步探讨的是,如何在保持功耗水平不变的情况下,通过多核心设计来提高CPU的吞吐量和性能。我们知道,在假定其他条件不变的情况下,功耗往往是以CPU主频的平方倍或立方倍增长的,而性能提升却要低于主频的线性增长速度。可见,在主频发展到一定程度,试图继续通过提升主频来提高每瓦特性能的做法会越来越难以凑效。

    多核为我们提供了一种新的方法。对于那些可以充分利用多线程的应用负载来说,多核可以极大地提高CPU的每瓦特吞吐量。但是,多核也存在缺陷,就象我们前文讨论过的,这种吞吐量的提升是以牺牲单线程性能为代价的。

     为了在一颗芯片上放入更多的内核,一方面,我们可以不断改进平版印刷工艺,以把更多的当前内核放进去,另一种方法就是设计尺寸更小、也更节能的新内核。但问题在于,过去数年来,我们把单线程看得太重要了,使得后一种方法并没得到大规模使用(除了SUN的TI处理器外)。

    通过上文的性能模型分析表明,只要我们能够保证CPU内核的功耗下降速度快于峰值吞吐量的下降速度,我们就能够通过无数个高效率的微小核心来获得最优的吞吐量性能。很显然,这样一种系统会使单线程性能很低。

    那么,在多核系统中,如何来解决“多线程应用性能提高、单线程应用性能下降”的这种矛盾呢?到底多少个处理器内核才是最优的呢?\

    为此,我们可以事先定义好可以接受的最低单线程性能(minimum acceptable single-thread performance),然后对芯片进行优化,在限定的面积和功耗水平下,使其能包含尽可能多的内核。
此外,还有其他一些因素会限定内核的数量。一个因素就是通信(communication)和同步(synchronization),这一点在简单的吞吐量模型中往往被忽视了。而实际情况是,如果你想在一个并行、线程化的应用中使用不只一个内核,就需要某种通信/同步,而且,对于一个固定的工作负载,通信/同步开销是作业所用 CPU 内核数量的单调递增函数(monotonically increasing function)。由此,我们需要对 Amdahl 定律做些简单修改:

    其中,T 为解决某计算问题所需的总时间,Ts 是完成串行(非重叠性,non-overlapped)工作所需的时间,Tp 是完成所有并行工作所需的时间,N 是并行工作中所使用的处理器数量,To 是每颗处理器的通信与同步开销。To正是传统 Amdahl 定律公式中所没有的——随着处理器的增多,总开销也会增加。

     在没有引入通信/同步开销的传统标准模型中,总时间T就是处理器数N的一个单调递减函数(monotonically decreasing function),会逐渐接近于Ts。而在修改后的公式中,我们很清楚地看到,由于存在通信开销,随着处理器数N 的增加,在达到某一临界点后,总时间T就会开始增加。因此,对于一个完全并行的应用 (即Ts=0) 来说,其所需处理器的最优数量是:

    比如,假设通信同步开销 To 是并行化时间 Tp 的 1%,那么,我们可以算出:使用 10 个处理器就能获得最大的性能表现。当然,在实际系统设计时,我们还需要权衡其他一些影响性能和性价比的因素。

3)多核芯片与RISC SMP的相似性

    我们注意到,在多核芯片与上世纪90年代中繁荣了RISC服务器市场的RISC SMP系统之间,存在着非常有趣的相似现象。在过去的10年中,RISC服务器市场的硬件收入可是达到了2400亿美元。

    首先,传统的RISC SMP提供了易于使用、缓存一致(cache-coherent)、共享内存(shared-memory)的应用特性,未来的多核处理器也同样会提供这些价值,不同的是,SMP是在一个单一的芯片上来实现。

    其次,二者拥有相似的主内存延迟比率。1995年,SGI POWER Challenge是当时中端市场上最畅销的HPC服务器——笔者之一(McCalpin)就曾买过一台8 CPU的系统,花了40万美元。在1996-1997年间,其CPU主频是90 MHz (11 ns),主内存延迟接近 1000 ns(即90 个时钟周期)。而到了2007年,一颗AMD四核处理器的主频将超过 2 GHz (0.5 ns),主内存延迟约为 55 ns(即110 个时钟周期)。比较一下,我们不难发现,主内存延迟的比率是多么惊人的相似,均在100个时钟周期左右。

    再次,二者在字节/FLOP上也相似。对于RISC SMP系统来说,能否提供足够的内存带宽是一大挑战。一套配备8颗CPU的SGI POWER Challenge的峰值浮点运算性能是2.88 GFLOPS,最高内存带宽为1.2 GB/s,即平均每FLOP约 0.42 字节。而一颗AMD四核处理器的峰值浮点性能将达到32 GFLOPS,最高内存带宽约12.8 GB/s,平均每FLOP也大约是0.4 字节。

4)X86多核处理器对RISC的冲击

    1996年,UNIX 服务器市场的硬件收入超过 220 亿美元,到 2000 年,增加到了近330 亿美元。之后,这块市场一直在下滑,到2006 年,已下滑到了180 亿美元左右。我们认为,主要有以下三大因素导致了UNIX市场的萎缩:

    • 越来越难以维持最初使UNIX服务器获得成功的系统平衡;

    • 跟中低端的小型RISC SMP不同,大型多路RISC SMP无法降低每处理器的系统价格;

    • 更低廉的IA32架构服务器的普及,以及2003年AMD 64架构产品的出现,大大冲击了RISC市场。

    那么,具体来说,这三大因素是如何发生作用的呢?

①系统平衡被打破

    如前文所述,起初,RISC SMP的主内存延迟大约在100个时钟周期,内存带宽为0.4字节/FLOP。内存延迟在很大程度上跟CPU数量是不相关的,但每颗处理器的带宽会因为配置不同数目的处理器而有所变化。

    另外,在应用领域和处理器带宽之间也存在明显的系统相关性:缓存友好型的应用大多采用满配的SMP系统,而高带宽型的应用则配置较少的处理器,甚至是运行在单路系统上。

    到了2000年,RISC SMP的主内存延迟大约减少了3倍,而CPU主频却增加了3-6倍。同样,随着系统总线转向多种多样的NUMA架构,每处理器带宽的变化也难以保持一致,情况变得更加复杂。这样一来,过去的系统平衡就逐渐被打破了。

②小型SMP和大型SMP的性价比差距越来越大

    为了维持合理的系统平衡,服务器厂商在上世纪90年代中后期,也进行了大量的努力。虽然取得了不错的效果,但代价却是提高了系统的成本。导致成本增加的两大主要因素是为保持缓存一致性所需的片外SRAM缓存(off-chip SRAM cache)和监听系统总线(snooping system bus)。

    对于RISC SMP系统来说,为了平衡相对较高的内存延迟,以及降低共享地址(shared address)和数据总线所需的带宽要求,大容量的片外SRAM缓存是至关重要的。但是,当英特尔不再使用标准的片外SRAM缓存之后,这一市场停滞不前了,跟其他电子元器件的发展趋势不同,SRAM的性价比变得越来越糟糕。到2000年,一个大容量的片外SRAM缓存所花费的成本甚至是处理器的好几倍。

    不过,对于小型SMP系统来说,由于降低了对内存和地址总线的共享,因此,能够获得相对较低的延迟和较高的每处理器带宽。反过来,小型SMP使用小容量的片外SRAM缓存就可以了。这样一来,小型RISC SMP和大型RISC SMP在每处理器售价(price/processor)方面的差距越拉越大,越来越多的用户开始转向小型SMP集群,以取代大型SMP系统。

③多核X86处理器的性价比

    到2000年初,基于X86架构的服务器在性能上开始接近基于专有RISC架构的服务器,而且前者在性价比方面更胜一筹。上述大型SMP向小型SMP集群迁移的趋势,也使得进一步向X86集群转移变得更加容易。随着2003年AMD64架构处理器的推出,向X86迁移也就更加盛行,因为AMD64提供了更好的性能、真64位寻址及整数算法能力。随后,英特尔也推出了EM64T架构,从而使得仅仅在几年的时间里,大多数X86服务器完成了从32位向64位的转变。

    当然,这些趋势并不能说明用户对SMP系统不再有兴趣,而是说明,用户对大型SMP系统的性价比变得越来越敏感了。想想看,大型SMP和小型SMP之间的价格差距实在太大了,市场必然会欢迎更便宜的硬件产品。

    过去,RISC SMP的发展促使大量ISV对其软件代码进行了并行化(在企业计算和科学计算两个领域都是如此),现在,多核处理器趋势则会进一步刺激更多的软件转向并行化,这些软件通常运行在价格更低廉的小型服务器上。

    与上世纪九十年代RISC SMP市场不同的是,今天的多核处理器不再依赖于片外SRAM缓存,而且通过配置,可以避免芯片到芯片(chip-to-chip)之间昂贵的一致性流量(coherence traffic)——既可以通过监听过滤器(snoop filter),也可以简单地使用单路服务器,如SUN的T1/Niagara。


 

0
相关文章