zoukankan      html  css  js  c++  java
  • 提升CPU性能的几个方面

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

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

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

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

    因此可以通过提升“制程”,(即缩短晶体管,增加晶体管数量)方面的优化和降低电压来降低功耗。

    并行优化,阿姆达尔定律

    这个定律说的是,对于一个程序进行优化之后,处理器并行运算之后效率提升的情况。具体可以用这样一个公式来表示:

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

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

    在计算机组成层面,还有这样几个原则性的性能提升方法:

    1.加速大概率事件。

    2.通过流水线提高性能。

    3.通过预测提高性能。

  • 相关阅读:
    抽象工厂
    组合和继承
    Mysql 设置远程连接
    websocket
    redis 持久化
    django urls
    git gitignore
    Mysql 系统表
    cudnn升级之后caffe无法训练的问题
    python numpy初始化一个图像矩阵
  • 原文地址:https://www.cnblogs.com/mylearning-log/p/10865121.html
Copyright © 2011-2022 走看看