• 为什么CPU的浮点运算能力比GPU差

    电脑杂谈  发布时间:2020-11-14 02:01:43  来源:网络整理

    显卡浮点运算能力图_显卡浮点运算能力图

    ...所有这些都去了哪里?

    精确的浮点运算非常复杂。订单代码和尾数必须重复计算和标准化。与定点或整形操作相比,延迟必须加倍。但是,最大的问题是处理器中浮点数的表示受到上限和下限的限制,但是很难预测在操作过程中是否会出现处理器无法表示的情况。这要求处理器识别此类异常或错误。使其不影响后续计算-科学计算会使用大量迭代和递归,并且错误和错误会累积和扩大。在过去(386-387时代之前),编写一些程序来在“高精度”计算机上运行非常有趣的技巧很容易-几秒钟的计算就可以提交结果,并产生数千%的错误

    显卡浮点运算能力图_显卡浮点运算能力图

    为防止此类错误,成本非常高。如果发现浮点错误或异常,则必须立即停止管道中的操作。一些中断例程将流水线阻塞数十个甚至数百个周期。但这实际上是最快的解决方案,因为后续计算可能不再正确。没有这种机制,您将需要稍后进行更多的检查和补偿操作,否则将面临完全失控的结果。

    查看cpu和gpu,很容易理解它们之间的区别。 CPU是一个非常小的alu(甚至可能只有一组浮点管线),因此可以完成精确的浮点计算。像SSE这样的SIMD一次可以执行更多的浮点运算,并且异常处理比较草率(例如,sse倾向于自动将上溢或下溢的结果表示为最大和最小的可表示数字...),经常需要由编译器巧妙地处理。和gpu一样,这么多的alus同时执行很多浮点运算,基本上不可能实现完整的异常和错误处理------因此gpu执行浮点运算,将编译器交给程序并且适用范围较大的限制,有必要尽可能避免迭代和递归以及其他影响精度的算法等。

    显卡浮点运算能力图_显卡浮点运算能力图

    但是,在GPU中处理与显示相关的操作时,浮点异常和浮点错误确实不是大问题。玩早期3D游戏的人可能已经习惯了各种相互交叉的物体-这些实际上是一种追求。高速GPU在一定程度上放弃了数据准确性的结果。

    ------------------------补充:

    显卡浮点运算能力图_显卡浮点运算能力图

    似乎很仍然不理解。

    高性能计算领域非常重视浮点计算,因此研究了使用GPU加速浮点的方法。该领域的某些CPU是以浮点处理为核心开发的,但它们仍然是标量或短向量浮点组件。理论值与相同规模的GPU仍有很大差异,甚至相差2个数量级。主题问题。

    显卡浮点运算能力图_显卡浮点运算能力图

    gpu中的浮点组件比cpu中的浮点组件简单,但这不是不可避免的。早期cpu中的浮点分量不一定要强于当前gpu中的浮点分量。由于高频优化和某些特殊组件(例如移位器等),现代cpu中的fpu功能强大,但这是“浪费的”。 cpu的浮点组件的规模足以让GPU安排数十个浮点组件。理论产量仍然相差很大。也就是说,如果CPU可以使用许多但较弱的浮点组件,则专家肯定会毫不犹豫的。

    例如,在相同的技术下,GPU可以在8核cpu区域中布置近一千个计算单元。也就是说,一个cpu浮点单元必须处理数百个gpu浮点单元。即使考虑整形组件和缓存,cpu浮点单元仍必须对应数十到数十个gpu浮点单元。即使频率高出几倍,理论性能仍然远远落后。但是专家仍然坚持使用标量或短向量fpu,主要原因是我在上面描述过。

    实际上,gpu浮点还具有分支跳转之类的问题。当然,这些问题还与并行处理无法单独处理单个操作有关。


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.yebodg.com/a/shenmilingyu/article-333118-1.html

      相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 廖鑫
        廖鑫

        敢独立大陆就敢动武

        • 九条美海
          九条美海

          >想当初167舰上的好多东西海军都没有人会操作

      • 倪志扬
        倪志扬

        撞死他

      热点图片
      拼命载入中...
      时时彩网站