计算机组成原理讲解:功耗与性能 台式机功率计算公式( 二 )


优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间
3. 总结延伸我们可以看到 , 无论是简单地通过提升主频 , 还是增加更多的 CPU 核心数量 , 通过并行来提升性能 , 都会遇到相应的瓶颈 。仅仅简单地通过“堆硬件”的方式 , 在今天已经不能很好地满足我们对于程序性能的期望了 。于是 , 工程师们需要从其他方面开始下功夫了 。
【计算机组成原理讲解:功耗与性能 台式机功率计算公式】在“摩尔定律”和“并行计算”之外 , 在整个计算机组成层面 , 还有这样几个原则性的性能提升方法 。
  1. 加速大概率事件 。最典型的就是 , 过去几年流行的深度学习 , 整个计算过程中 , 99% 都是向量和矩阵计算 , 于是 , 工程师们通过用 GPU 替代 CPU , 大幅度提升了深度学习的模型训练过程 。本来一个 CPU 需要跑几小时甚至几天的程序 , GPU 只需要几分钟就好了 。Google 更是不满足于 GPU 的性能 , 进一步地推出了 TPU 。后面的文章 , 我也会为你讲解 GPU 和 TPU 的基本构造和原理 。
  2. 通过流水线提高性能 。现代的工厂里的生产线叫“流水线” 。我们可以把装配 iPhone 这样的任务拆分成一个个细分的任务 , 让每个人都只需要处理一道工序 , 最大化整个工厂的生产效率 。类似的 , 我们的 CPU 其实就是一个“运算工厂” 。我们把 CPU 指令执行的过程进行拆分 , 细化运行 , 也是现代 CPU 在主频没有办法提升那么多的情况下 , 性能仍然可以得到提升的重要原因之一 。我们在后面也会讲到 , 现代 CPU 里面是如何通过流水线来提升性能的 , 以及反面的 , 过长的流水线会带来什么新的功耗和效率上的负面影响 。
  3. 通过预测提高性能 。通过预先猜测下一步该干什么 , 而不是等上一步运行的结果 , 提前进行运算 , 也是让程序跑得更快一点的办法 。典型的例子就是在一个循环访问数组的时候 , 凭经验 , 你也会猜到下一步我们会访问数组的下一项 。后面要讲得“分支和冒险”、“局部性原理”这些 CPU 和存储系统的设计方法 , 其实都是在利用我们对于未来的“预测” , 提前进行相应的操作 , 来提升我们的程序性能 。

推荐阅读