为何 GPU 可以用于加速人工智能或者机器学习的计算速度(并行计算能力)

其实 GPU 计算比 CPU 并不是“效果好”,而是“速度快”。

计算就是计算,数学上都是一样的,1+ 1 用什么算都是 2,CPU 算神经网络也是可以的,算出来的神经网络放到实际应用中效果也很好,只不过速度会很慢罢了。

1. GPU 的起源

GPU 全称叫做 graphics processing unit,图形处理器,顾名思义就是处理图形的。

电脑显示器上显示的图像,在显示在显示器上之前,要经过一些列处理,这个过程有个专有的名词叫“渲染”。以前的计算机上没有 GPU,渲染就是 CPU 负责的。渲染是个什么操作呢,其实就是做了一系列图形的计算,但这些计算往往非常耗时,占用了 CPU 的一大部分时间。而 CPU 还要处理计算机器许多其他任务。因此就专门针对图形处理的这些操作设计了一种处理器,也就是 GPU。这样 CPU 就可以从繁重的图形计算中解脱出来。

由于 GPU 是专门为了渲染设计的,那么他也就只能做渲染的那些事情。

渲染这个过程具体来说就是几何点位置和颜色的计算,这两者的计算在数学上都是用四维向量和变换矩阵的乘法,因此 GPU 也就被设计为专门适合做类似运算的专用处理器了。为什么说专用呢,因为很多事情他做不了。

CPU 通用性强,但是专用领域性能低。工程就是折衷,这项强了,别的就弱了。再后来游戏、3D 设计对渲染的要求越来越高,GPU 的性能越做越强。论纯理论计算性能,要比 CPU 高出几十上百倍。

人们就想了,既然 GPU 这么强,那用 GPU 做计算是不是相比 CPU 速度能大大提升呢?于是就有了 GPGPU(general purpose GPU,通用计算 GPU)这个概念。但我们前面提到了,GPU 是专门为了图像渲染设计的,他只适用于那些操作。但幸运的是有些操作和 GPU 本职能做的那些东西非常像,那就可以通过 GPU 提高速度,比如深度学习。

深度学习中一类成功应用的技术叫做卷积神经网络 CNN,这种网络数学上就是许多卷积运算和矩阵运算的组合,而卷积运算通过一定的数学手段也可以通过矩阵运算完成。这些操作和 GPU 本来能做的那些图形点的矩阵运算是一样的。因此深度学习就可以非常恰当地用 GPU 进行加速了。

以前 GPGPU(通用 GPU) 概念不是很火热,GPU 设计出来就是为了图形渲染。想要利用 GPU 辅助计算,就要完全遵循 GPU 的硬件架构。而现在 GPGPU 越来越流行,厂家在设计和生产 GPU 的时候也会照顾到计算领域的需求了。比如今年英伟达发布 M40 和 P100 的时候,都在说”针对深度学习设计“,当然其实这里面炒概念的成分更大了,但至少可以看出厂家越来越多地看重通用 GUGPU 计算了。

  • 分享于 · 2020.02.22 20:49 · 阅读 · 812

[版权声明] :本文系网友分享,仅以非商业性的交流和科研为目的,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网( friends@stuch.cn )联系!我们将协调给予处理。转载授权码:确权中,请原作者尽快与我们取得联系,阅读原文(请登录)..

0 条评论

请先 登录 后评论
猜猜我是谁
Hollow -研究生

13
提问
27
回答
11
文章