首页 炼丹房 帖子详情
为什么GPU比CPU快?
收藏
快速回复
炼丹房 文章新手上路 16939 106
为什么GPU比CPU快?
收藏
快速回复
炼丹房 文章新手上路 16939 106

作者:毛大闲

来源:https://mbb.eet-china.com/blog/3887969-407803.html

一、前言

  近几年深度学习在各领域大显神威,而”GPU加速"也得到了越来越多的篇幅,似乎任何程序只要放到GPU上运行那速度就是杠杠的。GPU代替CPU计算已成了大势所趋?我先告诉你结论”那是不可能滴“,然后咱们再来说说”GPU为什么比CPU快“。


二、图形处理,GPU的源起

  GPU是显卡的计算单元,就好比CPU是电脑的计算核心,有时我们直接就把GPU称为显卡。显而易见,GPU从诞生之初就是用来处理图像的。下面我们讲一个简单的例子来说明下为什么图像处理需要用到GPU,而CPU的缺点是什么。

  我们讲一个画面”立体“,其实讲的是画面中对于光影的运用,下图就是一个简单的”圆“。

  当我们给这个圆加上”光影“之后,它就变成了一个球。我们说球要比圆立体的多,这就是光影的作用。

  光影的原理很简单,你需要想象一个远处的”光“,然后在画面上模拟出光照在物体上的明暗变化,计算机中这些明暗变化都是通过”计算“得到的。编程人员只需要输入光源的距离、亮度、被照体的位置,然后通过逐步计算、光影叠加就能得到图像中每一个像素应该显示什么颜色、什么亮度,一个立体画面也就跃然纸上了。

  那么现在问题来了,假设屏幕分辨率为1920*1080,即2073600(207.36万)个像素,游戏中每个像素都需要根据光影参数来计算显示的颜色和明暗。假设一个常见的Intel I5 CPU主频为3.2GHz,即最多每秒可做32亿次运算。但这里的一次运算只是做了一次简单的二进制加减法或数据读取,一个像素的光影计算我们可以假设需要100次运算,即CPU一秒约处理3200万次像素运算,大概15张图片,用专业点的说法,这个游戏流畅度大概是每秒15帧的样子。

  可见使用CPU全力进行图形运算是有点吃力的,更何况CPU还要处理很多键盘指令、游戏后台计算等等。是CPU还不够快吗?假设现在速度翻倍,即每秒64亿次运算似乎也是不够的。其实CPU面临的主要问题是,虽然每一次光影计算都非常简单,但经不住像素太多啦,还都得排队一个一个做。然后工程师们想到“其实任何一个像素的计算与其他像素的计算结果关系不大”,那为啥不多整几个计算核心“并行”计算呢,于是GPU就出现了。

  一个典型的显卡GTX1060,主频是1.5GHz大概是Intel I5一半左右,但是它具备1280个计算核心。每个计算核心每秒可做15亿次运算,1280个核心每秒就是19200亿次运算,那一秒可以处理192亿次像素计算,大概925张图片,是CPU计算能力的61倍!但GPU的特性只能应用于图形计算这种可以并行的任务,若是做普通的串行任务其速度远远不如CPU。

 

三、核心越多越好?

  通过前面的叙述我们都知道了GPU速度“快于”CPU的奥秘在于它有很多的“核”,那能不能这样,我们给CPU也装上1000多个核,那速度岂不是快到飞起?答案是“不得行”。由于制造工艺的原因,CPU内核越多其频率也就越低。其实很容易想到,同步10个人的动作和同步1000个人的动作其难度肯定是不一样的。其次,电脑中大部分的运算都是串行的,即下一个运算要等到上一个运算完毕才能继续,这时候单次运算的速度才是最重要的。

  所以相当长时间以内,CPU+GPU的搭配才是最佳方案。

 

 四、GPU与并行计算

  深度学习与图形处理有一些相通的地方,它需要大量的数据来“训练”模型。比如一个猫图识别AI,你需要提供数以万计的猫图供其“学习”。而每一张猫图的学习又与其他猫图没有先后关系,即你可以同时并行100、1000张猫图的学习,所以GPU在深度学习领域大放异彩。

  实际上GPU编程一直是近年来的热点,作为高效程序员又怎么能不了解一二呢?CUDA是NVIDIA推出的并行计算框架,它囊括了GPU并行计算中所有你需要的组件,只需要简单安装(当然你电脑得是N卡)就可以在C代码中使用它提供的接口进行GPU编程了,当然对于非从业人员来说了解下相关知识也是极好的。

5
收藏
回复
全部评论(106)
时间顺序
AIStudio810260
#43 回复于2020-07
尤其是AR眼镜装个摄像头,(手势)输入就也有了。 将来:科学家们端坐云头(云飞行器),观着观天象(VR眼镜),掐诀念咒(手势输入)。。。

这概念几年前就有了,好像学术最前沿不少在研究如何用深度学习做三维重建

0
回复
AIStudio810258
#44 回复于2020-07
thinc #42
期待 

今天看一个访谈,嘉宾称2023年是VR元年

0
回复
AIStudio810260
#45 回复于2020-07

GPU:单输入多输出

CPU:多输入多输出

好像背过这个概念,不知道有没有记错。。。

0
回复
AIStudio810258
#46 回复于2020-07
这概念几年前就有了,好像学术最前沿不少在研究如何用深度学习做三维重建

现在已经要进入产业化了,据称要取代手机成为人们的日常一号终端

0
回复
thinc
#47 回复于2020-07
GPU:单输入多输出 CPU:多输入多输出 好像背过这个概念,不知道有没有记错。。。

啥意思 解释一下呗

0
回复
thinc
#48 回复于2020-07
今天看一个访谈,嘉宾称2023年是VR元年

将来真的就是足不出户看世界了

0
回复
thinc
#49 回复于2020-07
这概念几年前就有了,好像学术最前沿不少在研究如何用深度学习做三维重建

这种东西只能说研究人员在做 真的落地不知道要等多久 

0
回复
AIStudio810260
#50 回复于2020-07
thinc #49
这种东西只能说研究人员在做 真的落地不知道要等多久 

两年前听过在制造业落地的设想,当时学术上已经搞定全流程了可以落地了。。。然而太先进,业界理解不了,未来VR技术更成熟、网络升级应该就要开始了

0
回复
AIStudio810260
#51 回复于2020-07
thinc #47
啥意思 解释一下呗

Flynn分类法

单指令流单数据流机器(SISD)

SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器,如冯·诺依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。

单指令流多数据流机器(SIMD)

SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。

Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于SIMD机器。

多指令流单数据流机器(MISD)

MISD是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有投入到实际应用之中。

多指令流多数据流机器(MIMD)

MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器等都属于MIMD

0
回复
AIStudio810258
#52 回复于2020-07
两年前听过在制造业落地的设想,当时学术上已经搞定全流程了可以落地了。。。然而太先进,业界理解不了,未来VR技术更成熟、网络升级应该就要开始了

说5g是关键,这种ar设备高度依赖云端算力

0
回复
AIStudio810258
#53 回复于2020-07
thinc #49
这种东西只能说研究人员在做 真的落地不知道要等多久 

据说证券的投研也研究过了~~

0
回复
thinc
#54 回复于2020-07
Flynn分类法 单指令流单数据流机器(SISD) SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器,如冯·诺依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。 单指令流多数据流机器(SIMD) SIMD是采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。 Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们现在用的单核计算机基本上都属于SIMD机器。 多指令流单数据流机器(MISD) MISD是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有投入到实际应用之中。 多指令流多数据流机器(MIMD) MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器等都属于MIMD
展开

太高深了

0
回复
thinc
#55 回复于2020-07
据说证券的投研也研究过了~~

炒股这个太玄了  不太看好

0
回复
thinc
#56 回复于2020-07
说5g是关键,这种ar设备高度依赖云端算力

这不云电脑5g开始流行了吗 WiFi都做不到的低延时  5g就行

0
回复
thinc
#57 回复于2020-07
据说证券的投研也研究过了~~

时间序列来建模也很难搞

0
回复
AIStudio810260
#58 回复于2020-07
说5g是关键,这种ar设备高度依赖云端算力

这个应该属于边缘计算范畴,部署要看边缘端设备性能的提升,云端太远了,延迟受不了;我理解5G是给数据源传给边缘端计算中心用的,不是传到云上。

0
回复
AIStudio810260
#59 回复于2020-07
thinc #55
炒股这个太玄了  不太看好

他说的应该不是把深度学习用在炒股,是由券商开始研究VR这个板块。。。

0
回复
AIStudio810260
#60 回复于2020-07
thinc #57
时间序列来建模也很难搞

应该说搞来搞去可能还不如建个完善的专家系统

0
回复
thinc
#61 回复于2020-07
这个应该属于边缘计算范畴,部署要看边缘端设备性能的提升,云端太远了,延迟受不了;我理解5G是给数据源传给边缘端计算中心用的,不是传到云上。

是这么回事

0
回复
AIStudio810258
#62 回复于2020-07
thinc #55
炒股这个太玄了  不太看好

今年创业板注册制改革、科创版推出,可能是个元年。十年牛市起点。可能到10000点的。

不可认真啊~~

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户