多核革命 AMD首席技术官帮你解密CPU
● 多核心处理器当前和短期内需要面对的问题
◎ 功耗问题
功耗与性能一样,比我们最初假设的情况更加多元化。在基于高性能微处理器南低郴肪持校?#8220;功耗问题”包括:
• 通过众多超细针脚/焊点传送到芯片的大量电流。(注意:即使在同样的功耗水平下,随着电压下降,电流上升,针脚/焊点内的热阻也将升高。)
• 消除大量热量,以防止Die温度超过阈值,明显缩短产品寿命。
• “热点”问题:芯片局部区域中的功耗密度过高可能将导致局部故障。(注意:若为了保持同样的功耗水平,将晶圆上的处理器内核尺寸减少一半,同时提高频率,则内核中的功耗密度将提高一倍。)
• 为提供这些服务,需要提供大量电力——包括电力成本和用电升级成本。
• 消除保有这些服务器的设施所产生的大量热量——包括电力成本和机房冷却系统升级成本。
• 消除处理器芯片造成的大量热空气,这些热空气同样影响其他热敏组件(如内存、硬盘等)。
由此可以看出,功耗问题实际上至少与5、6个相互关联而性质截然不同的技术和经济问题有关。
◎ 功耗与吞吐量及核心和核心数量的矛盾
针对以同样的功耗水平提高性能这一问题,我们着重讨论一下如何使用越来越多的核心提供更高的吞吐量。
如果参数保持不变,功耗通常以CPU时钟频率的平方或立方倍率增长。但是,性能的增长速度是低于频率的线性增长速度的。对于能够利用多线程的工作负载来说,多核心能够显著提高每瓦吞吐量。但是,正如之前所见,这种吞吐量的增长除了等待光刻工艺的提高,使我们能够在一个芯片上放置更多核心之外,我们还可以创建更小的CPU核心,使其外形更小巧,效能更高。就在前不久这种技术还很少见(除了SunT1处理器芯片),这是因为我们假设单线程性能太重要了,不能牺牲它。
我们将在“长期预测”章节继续讨论这一问题,但是,之前描述的性能模型的直接应用说明,只要CPU内核功耗下降的速度大于峰值吞吐量的速度,则通过无限数量的极小快速核心,即可获得非常好的吞吐量。显而易见,这种系统的单线程性能将非常低,从而直接影响对单一指标值的优化。为了解决这一问题,一种方法是可以定义一个可接受的最低单线程性能,然后对芯片进行优化,在面积和大功耗的限制条件下,尽可能加入更多的核心。
还有一种方法是将核心数量限制到一个合理的数量。在此处使用的单一吞吐量模型中,我们忽略了通信与同步这一因素。若用户希望在单一的并行/线程应用中使用更多的核心,将需要某种通信/同步,而且对于固定工作负载,还必须要保证通信/同步的开销将随着作业中使用的CPU核心数量而单向增长。
由此产生了对Amdahl定律的简单修改:
其中,T为解决问题所需的总时间,Ts是完成串行(非重叠性)工作所需的时间,Tp是完成所有可并行工作所需的时间,N是并行工作使用的处理器数量,To是结合实施该应用所需的通信与同步,每个处理器的开销。最后这一条件说明,随着处理器的增多,开销也将提高,而这是传统的Amdahl定律公式中所没有的。
在标准模型(没有开销)中,解决问题所需的总时间随着N函数单调递减,逐渐接近Ts。在修改后的公式中,可以明显看出,随着N的增加,由于出现通信开销,解决问题所需的总时间将开始增加。在上述的简单示例中,可以根据以下公式定义完全并行的应用(Ts=0)所需处理器的最优数量:
由此,举例来说,若To是Tp的1%,则可以使用10个处理器获得最大性能。是否将此作为一个重要设计点,将取决于其他性能与性能价格比指标的相对重要性。