zoukankan      html  css  js  c++  java
  • GPU性能越来越强大,为何直到现在还是不能取代CPU?

     

    从思路上说,GPU相当于火车,一个车头带几十节车厢,一下子把成千上万吨货全给你拉目的地;CPU相当于汽车,拉货旅游样样能干。因此,如果单纯比运力,一列火车比得过成百上千辆汽车;但如果几百人有几百个目的地,你再让几十节车厢跑几百趟,把他们一个个送达……这显然就不合适了。
    GPGPU不过相当于铺设了更多铁路线,使得火车也可以开到过去只有汽车可以开到的地方而已。再怎么优化,火车也是不可能优化成汽车的:成本太高(每节车厢甚至每个座位都自带发动机驾驶室驾驶员,这得是多大的浪费)、效率太低(当只有一人时,其它海量座位/运力只能闲着)。
    同样,汽车也没法代替火车:过去都是单座的,后来的MMX/3D NOW/SSE指令集把汽车升级成了8座——现在,如果只需要拉一两个人,就把多余的座位拆了、座位间距拉大;需要拉更多人,又要重新安装座位、缩短座位间距(CPU执行MMX指令集需要切换模式,这个切换比较耗时;切换后类似GPU,可以并行——可怜巴巴的8字节并行都麻烦到这个程度,像GPU那样的海量并行你敢想?)。
    “个性化”和“借批量提高效率”是一对矛盾,不可能两者兼顾。为了方便大家理解,小编再说一个比喻,CPU的核心是大学生,4核就是4个大学生,GPU的核心是小学生,上千个就处理器就是上千个小学生他们一起参加一场考试,试卷是一百万道四则运算和四道高数。两个小时过后,大学生奔溃了,这一百万道四则运算太多了。再看小学生,全都懵了,四则运算都做完了,剩下的数学题里面怎么全是字母?
    其实我们可以想一想:CPU之所以叫CPU不是因为好听,而是取决于它设计时所针对的工作类型,GPU也是一样的道理。应用的领域和工作性质的迥然不同就导致各自结构的巨大差异。如果有一天GPU也能干CPU的活甚至可以取代CPU的时候,那个时候他也不该叫GPU了 ......所以不存在GPU取代CPU一说。就像有人问为什么不可以把手机做大取代平板呢?答:因为变大的手机叫“通话平板”(搞笑一下)。GPU性能越来越强大,为何直到现在还是不能取代CPU?以上就是小编个人的看法,对此,您有什么不同的意见吗
  • 相关阅读:
    C# using的三种用法
    C# 匿名方法和Lambda表达式
    c#中内置委托
    c#委托中的匿名方法和lambda表达式
    java生成条形码
    根据日期筛选和模糊查询
    mysql中ifnull()方法的用法
    mysql数据库中的出发器
    动态SQL之<where>、<if>条件判断
    动态sql
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/11861128.html
Copyright © 2011-2022 走看看