端午回来,发的第一篇文章,还在谋划其他事情,大家共勉。
现在电脑这么普及,应该每个人都知道 CPU ,即使不懂电脑的人都能憋出大招告诉你电脑里面有一个 CPU,CPU 是中央处理器,是很多很多年积累下来的,因特尔公司发财的亲儿子啊。
有一些比较专业的人会蹦出 GPU,GPU 是干嘛用的?为什么有了 CPU 又出来一个 GPU?特别前几年挖矿很流行,一些码农就衍生出电脑 GPU 来挖矿,这些年人工智能,神经网络算法流行也是离不开 GPU 的功劳。
CPU 设计的时候是为了满足很强的通用性处理各种不同的数据类型,特别典型的就是浮点运算,这个需要消耗比较多的时钟周期,不仅仅是数据运算,还有逻辑运算,基于这样的需求,CPU 设计的内部结构非常复杂,这可以类比一个国家的皇帝,需要处理大臣们的奏折,也需要处理很多后宫的事情,计算机普及到后来,大家对于图形显示的要求越来越高,特别是 3D 建模这种事情,CPU 不能丢下自己的工作去干这种负荷高的工作,所以英伟达觉得可以有机可乘,就出现了 GPU。
GPU 设计出来的目的就比较单纯,就好像我需要把一块砖头搬到 10 楼,不管你用一个皇帝来搬砖,还是很多小孩子当苦力还搬砖,都是需要从 1 楼走到 10 楼,CPU 不需要跟太多其他人交涉,他需要干的事情比较纯粹,单一繁重。
GPU 和 CPU的对比图
观察颜色,绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。
网上有一个比喻用来比较 GPU 和 CPU ,我觉得非常贴切,100 个小学生和一个大学教授组成两队进行数学比赛,第一回合是两队分别完成 100 道四则运算题,比赛开始,第一回合教授还在写的时候,小学生们已经完成了答题,然后进行了第二回合,第二回合是两队分别完成 1 道高等数学题目,教授已经完成了答题,100 个小学生们还在苦苦冥想。
上面只能当成一个笑话来看,GPU 和 CPU 负责不同的事情
GPU处理视觉元素:
例如着色器,效果,阴影,光线,纹理等、图形卡确定一次可以显示多少个多边形、它还会显着影响任何给定对象的分辨率有多高、GPU是游戏的过滤器、它处理发光效果,能力效果,光源等。
GPU 真实的意义在于有一天有一个电脑游戏狂热粉觉得自己的界面显示太丑了,没有各种酷毙的感觉,然后 GPU 就出现了,专门用来出来这种吃力不讨好的事情,你想要 3D,那我就给你 3D ,你想要挖矿,我就给你挖矿,等等。
CPU处理物理和逻辑元素:
CPU 是干嘛的?
我觉得可以说 CPU 是电脑的核心,没有 CPU 就没有计算机,就没有操作系统,就没有你天天看着电脑玩游戏这回事,GPU 是辅助这个世界变得更好,没有 CPU 就没有电脑世界。
你可以说CPU是大脑,GPU是眼睛。你的大脑了解世界,它是如何运作的,物理学等等、当你的眼睛在创造图像时,你会看到世界。
有一个老外,做了一个非常有意思的实验来对比 GPU 和 CPU,我觉得非常有意思
神经网络
神经网络有一个学习的过程,我之前做 AI 音响的时候,有拿网上的一个算法库来学习,使用的是公司的服务器,学习过程也需要 2 天,GPU 有一个特点是核比较多,可以用几千个核来执行上面的几百条运算,速度肯定就快了,这也是 GPU 存在的最大意义了。