为什么现在更多需要用的是 GPU 而不是 CPU?

如题所述

         GPU的工作大部分就是这样,计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。

         而CPU就像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生A和小学生B的工作没有什么依赖性,是互相独立的。很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。

         这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。但还有一些任务涉及到“流”的问题。比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。这种比较复杂的问题都是CPU来做的。总而言之,CPU和GPU因为最初用来处理的任务就不同,所以设计上有不小的区别。而某些任务和GPU最初用来解决的问题比较相似,所以用GPU来算了。

         GPU的运算速度取决于雇了多少小学生,CPU的运算速度取决于请了多么厉害的教授。教授处理复杂任务的能力是碾压小学生的,但是对于没那么复杂的任务,还是顶不住人多。当然现在的GPU也能做一些稍微复杂的工作了,相当于升级成初中生高中生的水平。但还需要CPU来把数据喂到嘴边才能开始干活,究竟还是靠CPU来管的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-29

         现在的GPU的特色就是超长流水线、大规模并行。也就是说它擅长的只是一些特殊的计算任务,在这些它所擅长的任务中,它的性能表现就比CPU强很多,这也就是为什么发生了问题里提到的运用GPU算力的程序比常规的计算机程序性能强大很多的现象。然后就是GPU计算的弱点。刘帅提到,GPU只有简单的控制逻辑并省掉了缓存。这导致了GPU程序在遇到存在大量分支的时候计算性能暴跌。你可以把GPU想象成类似量子计算机,适合特定的运算,但对常见的运算任务表现就不突出或者很糟糕了。

         另外关于GPU适合算比特币,这有可能是有意这样设计的。中本聪的一些电子邮件通信表明他希望挖矿的这些编码计算是很多互相独立的快速计算的积累,这样可以保证不同的挖矿者挖到的量按算力平摊,而不是让算力最强的那些人挖走全部的矿。而这种类型的计算通常很适合用GPU这种大规模并行的处理器处理。

第2个回答  2017-10-29

         现在更多被需要的依然是CPU,只是GPU在大规模并发计算中体现出其一技之长所以应用范围逐渐变得广泛,并成为近些年的热点话题之一。为什么二者会有如此的不同呢?首先要从CPU和GPU的区别说起。CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。

         CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网