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

发表时间:2023-08-06 09:18:01
0 0

1.功耗

我们的CPU,一般都被叫作超大规模集成电路(Very-Large-ScaleIntegration,VLSI)。这些电路,实际上都是一个个晶体管组合而成的。CPU在计算,其实就是让晶体管里面的“开关”不断地去“打开”和“关闭”,来组合完成各种运算和功能。

想要计算得快,一方面,我们要在CPU里面,同样的面积里面,多放一些晶体管,也就是增加密度;另一方面,我们要让晶体管“打开”和“关闭”得更快一点,也就是提升主频。而这两者,都会增加功耗,带来耗电和散热的问题。

在CPU里面,能够放下的晶体管数量和晶体管的“开关”频率也都是有限的。一个CPU的功率,可以用这样一个公式来表示:

功耗~=1/2×负载电容×电压的平方×开关频率×晶体管数量

那么,为了要提升性能,我们需要不断地增加晶体管数量。同样的面积下,我们想要多放一点晶体管,就要把晶体管造得小一点。这个就是平时我们所说的提升“制程”。从28nm到7nm,相当于晶体管本身变成了原来的1/4大小。这个就相当于我们在工厂里,同样的活儿,我们要找瘦小一点的工人,这样一个工厂里面就可以多一些人。我们还要提升主频,让开关的频率变快,也就是要找手脚更快的工人。

wWW.keMAoWang。oRG。Cn

但是,功耗增加太多,就会导致CPU散热跟不上,这时,我们就需要降低电压。这里有一点非常关键,在整个功耗的公式里面,功耗和电压的平方是成正比的。这意味着电压下降到原来的1/5,整个的功耗会变成原来的1/25。

事实上,从5MHz主频的8086到5GHz主频的Inteli9,CPU的电压已经从5V左右下降到了1V左右。这也是为什么我们CPU的主频提升了1000倍,但是功耗只增长了40倍。比如说,我写这篇文章用的是什么SurfaceGo,在这样的轻薄笔记本上,微软就是选择了把电压下降到0.25V的低电压CPU,使得笔记本能有更长的续航时间。

2.并行优化,理解阿姆达尔定律

虽然制程的优化和电压的下降,在过去的20年里,让我们的CPU性能有所提升。但是从上世纪九十年代到本世纪初,软件工程师们所用的“面向摩尔定律编程”的套路越来越用不下去了。“写程序不考虑性能,等明年CPU性能提升一倍,到时候性能自然就不成问题了”,这种想法已经不可行了。

多核并行,提高性能。如果想要使用这种思想,需要满足这样几个条件。

需要进行的计算,本身可以分解成几个可以并行的任务。好比上面的乘法和加法计算,几个人可以同时进行,不会影响最后的结果。需要分解好问题,并确保几个人的结果能够汇总到一起。在“汇总”这个阶段,是没有办法并行进行的,还是得按顺序执行,一步一步来。

这就引出了我们在进行性能优化中,常常用到的一个经验定律,阿姆达尔定律(Amdahl’sLaw)。这个定律说的就是,对于一个程序进行优化之后,处理器并行运算之后效率提升的情况。具体可以用这样一个公式来表示:

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

3.总结延伸

我们可以看到,无论是简单地通过提升主频,还是增加更多的CPU核心数量,通过并行来提升性能,都会遇到相应的瓶颈。仅仅简单地通过“堆硬件”的方式,在今天已经不能很好地满足我们对于程序性能的期望了。于是,工程师们需要从其他方面开始下功夫了。

wWW.keMAoWang。oRG。Cn

在“摩尔定律”和“并行计算”之外,在整个计算机组成层面,还有这样几个原则性的性能提升方法。

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

.TCF46{display:none;}

声明:本文图片、文字、视频等内容来源于互联网,本站无法甄别其准确性,建议谨慎参考,本站不对您因参考本文所带来的任何后果负责!本站尊重并保护知识产权,本文版权归原作者所有,根据《信息网络传播权保护条例》,如果我们转载内容侵犯了您的权利,请及时与我们联系,我们会做删除处理,谢谢。

全部评论 0条
请先登录发表后评论(·ω·)
表情
发表
1页,跳至

金币

主题
最新发表
返回顶部