4.4. 核心过多?
虽然片内集成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 个线程,这将使绝大多数用户编程和使用计算机的方式发生根本性变革。因此,多核心处理器开发人员的任务很艰巨,他们必须简化多核心处理器的开发,以提高单一作业的效率。并且,如果多核用户能够提前于自己的竞争对手,率先开发出此并行机制,则该用户将获得更多的竞争优势。
4.5. 带宽情况如何?
相对处理器的性能增长速度,内存带宽的提升速度相对要低的多。通过提高管线能力,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 的目标带宽。)