让我们从之前的这个公式说起:

程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time

由于减少指令数和降低CPI都不容易做到,因此长期以来计算机科学家和工程师采用的主要优化思路都是提高主频。

一、功耗限制了CPU的极限速度

CPU被称为超大规模集成电路,这些集成电路由无数的晶体管组成,通过这些晶体管的不断打开、关闭来组成各种运算和功能。要提升运算速度,一方面我们需要在CPU上尽可能多的集成晶体管,另一方面

我们更快的打开和关闭晶体管,也就是提升主频。

由于扩大CPU面积会造成传输线路的延长导致传输速度下降,因此我们必须在一个大小受限的面积上部署越拉越多的晶体管,如此一来电路发热密度太大,芯片就有被烧毁的危险,尽管我们可以使用风扇、水冷等多种方式降温措施,但这都是有极限的。

一般来说功耗和电压成正比,因此使用低电压的CPU就成了降低CPU功耗的重要措施。比如一般笔记本使用的就是低压版本的CPU,以增加续航时间。

二、并行优化也不是万能的

随着时代发展,摩尔定律越来越不灵了,提升单核CPU性能变得越来越难,因此现在我们更多的使用多核方案来通过并行提升吞吐率,但这种提升是无限的吗?绝不是,并行优化有以下限制:

  • 需要并行执行的几个任务必须能够拆分为可以独立执行而不影响最终执行结果。
  • 需要分解、调度好几个任务的执行,确保最终结果可以成功汇总。
  • 汇总阶段无法并行。

阿姆达尔定律:

优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间

bios解除cpu功耗限制 主板解除cpu功耗限制_Google

三、思路延伸

除去摩尔定律和并行的优化思路外还有以下几种思路:

  • 加速大概率事件:在图形设计程序以及深度学习这种任务中,涉及大量互不影响的向量运算,因此科学家设计了GPU这样的硬件来加速向量运算,Google甚至进一步推出了TPU这种硬件进一步加速向量运算,这也可以看作是一种局部转化设计优化。
  • 通过流水线技术将指令拆分,使每个时刻尽可能多的电路上都运行相应逻辑,进一步提高硬件的使用率。
  • 通过预测提高性能,不等上一步执行完成,而是直接执行任务,可以提高运行速度。

南山马