首页 炼丹房 帖子详情
为什么GPU比CPU快?
收藏
快速回复
炼丹房 文章新手上路 16936 106
为什么GPU比CPU快?
收藏
快速回复
炼丹房 文章新手上路 16936 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)
时间顺序
AIStudio810258
#23 回复于2020-07

原来还真是没太注意硬件。

tpu现在好像不怎么提了

0
回复
AIStudio810258
#24 回复于2020-07

网上搜一下竟然找到这个:

APU -- Accelerated Processing Unit, 加速处理器,AMD公司推出加速图像处理芯片产品。

BPU -- Brain Processing Unit, 地平线公司主导的嵌入式处理器架构。

CPU -- Central Processing Unit 中央处理器, 目前PC core的主流产品。

DPU -- Deep learning Processing Unit, 深度学习处理器,最早由国内深鉴科技提出;另说有Dataflow Processing Unit 数据流处理器, Wave Computing 公司提出的AI架构;Data storage Processing Unit,深圳大普微的智能固态硬盘处理器。

FPU -- Floating Processing Unit 浮点计算单元,通用处理器中的浮点运算模块。

GPU -- Graphics Processing Unit, 图形处理器,采用多线程SIMD架构,为图形处理而生。

HPU -- Holographics Processing Unit 全息图像处理器, 微软出品的全息计算芯片与设备。

IPU -- Intelligence Processing Unit, Deep Mind投资的Graphcore公司出品的AI处理器产品。

MPU/MCU -- Microprocessor/Micro controller Unit, 微处理器/微控制器,一般用于低计算应用的RISC计算机体系架构产品,如ARM-M系列处理器。

NPU -- Neural Network Processing Unit,神经网络处理器,是基于神经网络算法与加速的新型处理器总称,如中科院计算所/寒武纪公司出品的diannao系列。

RPU -- Radio Processing Unit, 无线电处理器, Imagination Technologies 公司推出的集合集Wifi/蓝牙/FM/处理器为单片的处理器。

TPU -- Tensor Processing Unit 张量处理器, Google 公司推出的加速人工智能算法的专用处理器。目前一代TPU面向Inference,二代面向训练。

VPU -- Vector Processing Unit 矢量处理器,Intel收购的Movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。

WPU -- Wearable Processing Unit, 可穿戴处理器,Ineda Systems公司推出的可穿戴片上系统产品,包含GPU/MIPS CPU等IP。

XPU -- 百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。

ZPU -- Zylin Processing Unit, 由挪威Zylin 公司推出的一款32位开源处理器。
————————————————
版权声明:本文为CSDN博主「DesolatePoison」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40695642/article/details/101602284

0
回复
legendxty
#25 回复于2020-07

有个疑问:对于大批量的数据,跑1个epcoh,2张1070快还是1张1080ti快?

0
回复
thinc
#26 回复于2020-07
PC变成显示器,每年像交网费一样交云费

平板可能迎来大改革

0
回复
thinc
#27 回复于2020-07
原来还真是没太注意硬件。 tpu现在好像不怎么提了

tpu成本太高了,适配的框架也少,用来ai计算绝对是数一数二的硬件

0
回复
没入门的研究生
#28 回复于2020-07
网上搜一下竟然找到这个: APU -- Accelerated Processing Unit, 加速处理器,AMD公司推出加速图像处理芯片产品。 BPU -- Brain Processing Unit, 地平线公司主导的嵌入式处理器架构。 CPU -- Central Processing Unit 中央处理器, 目前PC core的主流产品。 DPU -- Deep learning Processing Unit, 深度学习处理器,最早由国内深鉴科技提出;另说有Dataflow Processing Unit 数据流处理器, Wave Computing 公司提出的AI架构;Data storage Processing Unit,深圳大普微的智能固态硬盘处理器。 FPU -- Floating Processing Unit 浮点计算单元,通用处理器中的浮点运算模块。 GPU -- Graphics Processing Unit, 图形处理器,采用多线程SIMD架构,为图形处理而生。 HPU -- Holographics Processing Unit 全息图像处理器, 微软出品的全息计算芯片与设备。 IPU -- Intelligence Processing Unit, Deep Mind投资的Graphcore公司出品的AI处理器产品。 MPU/MCU -- Microprocessor/Micro controller Unit, 微处理器/微控制器,一般用于低计算应用的RISC计算机体系架构产品,如ARM-M系列处理器。 NPU -- Neural Network Processing Unit,神经网络处理器,是基于神经网络算法与加速的新型处理器总称,如中科院计算所/寒武纪公司出品的diannao系列。 RPU -- Radio Processing Unit, 无线电处理器, Imagination Technologies 公司推出的集合集Wifi/蓝牙/FM/处理器为单片的处理器。 TPU -- Tensor Processing Unit 张量处理器, Google 公司推出的加速人工智能算法的专用处理器。目前一代TPU面向Inference,二代面向训练。 VPU -- Vector Processing Unit 矢量处理器,Intel收购的Movidius公司推出的图像处理与人工智能的专用芯片的加速计算核心。 WPU -- Wearable Processing Unit, 可穿戴处理器,Ineda Systems公司推出的可穿戴片上系统产品,包含GPU/MIPS CPU等IP。 XPU -- 百度与Xilinx公司在2017年Hotchips大会上发布的FPGA智能云加速,含256核。 ZPU -- Zylin Processing Unit, 由挪威Zylin 公司推出的一款32位开源处理器。 ———————————————— 版权声明:本文为CSDN博主「DesolatePoison」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_40695642/article/details/101602284
展开

在google colab上有tpu的选项。

0
回复
thinc
#29 回复于2020-07
legendxty #25
有个疑问:对于大批量的数据,跑1个epcoh,2张1070快还是1张1080ti快?

1. 多路显卡性能有损失;

2. 不同显卡对不同浮点数的处理速度不同;

想知道结果还是得实践。

不过有句话,显卡能单不双,内存能双不单

0
回复
w
wangwei8638
#30 回复于2020-07
全世界整合一下,白天我们用,晚上美国用,效率会更高

不考虑安全问题,倒是可以

0
回复
thinc
#31 回复于2020-07
全世界整合一下,白天我们用,晚上美国用,效率会更高

那到不至于哈哈,谁也不是每天24小时挂着,像有些人用来剪片子就几分钟

0
回复
AIStudio810258
#32 回复于2020-07
thinc #26
平板可能迎来大改革

我觉得对VR也是个很大的刺激。毕竟体积所限算力有限。但连上云就不一样了。

未来的终端:体积小,显示区域大就是王道

0
回复
AIStudio810258
#33 回复于2020-07
我觉得对VR也是个很大的刺激。毕竟体积所限算力有限。但连上云就不一样了。 未来的终端:体积小,显示区域大就是王道

尤其是AR眼镜装个摄像头,(手势)输入就也有了。

将来:科学家们端坐云头(云飞行器),观着观天象(VR眼镜),掐诀念咒(手势输入)。。。

0
回复
AIStudio810258
#34 回复于2020-07
在google colab上有tpu的选项。

金羊毛?还是自己烧包~~

0
回复
AIStudio810258
#35 回复于2020-07
不考虑安全问题,倒是可以

我觉得欧美的高校、科技公司还是挺支持全球化的吧。

或者反过来想,铁索连环了,还能对安全有点促进作用。

想脱的是米国,我们是支持全球化的。

0
回复
AIStudio810258
#36 回复于2020-07
thinc #31
那到不至于哈哈,谁也不是每天24小时挂着,像有些人用来剪片子就几分钟

只要整合后的各方收益大于损耗,就属于帕累托改进。

当然,要是再考虑其他领域的博弈就另当别论了

0
回复
没入门的研究生
#37 回复于2020-07
金羊毛?还是自己烧包~~

毕竟是大庄家,玩的大。

0
回复
thinc
#38 回复于2020-07
我觉得对VR也是个很大的刺激。毕竟体积所限算力有限。但连上云就不一样了。 未来的终端:体积小,显示区域大就是王道

VR还不是很了解,据说要出大量基于VR的游戏了

0
回复
夜夜夜
#39 回复于2020-07

mark 一下,学习学习

0
回复
thinc
#40 回复于2020-07
夜夜夜 #39
mark 一下,学习学习

全短时间不是刚mark过吗.

0
回复
AIStudio810258
#41 回复于2020-07
thinc #38
VR还不是很了解,据说要出大量基于VR的游戏了

我倒是觉得VR甚至比AR更实用些

0
回复
thinc
#42 回复于2020-07
我倒是觉得VR甚至比AR更实用些

期待 

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