更新时间: 2023-06-07
GPU全称叫做graphicsprocessingunit,图形处理器,顾名思义就是处理图形的。
电脑显示器上显示的图像,在显示在显示器上之前,要经过一些列处理,这个过程有个专有的名词叫“渲染”。以前的计算机上没有GPU,渲染就是CPU负责的。渲染是个什么操作呢,其实就是做了一系列图形的计算,但这些计算往往非常耗时,占用了CPU的一大部分时间。而CPU还要处理计算机器许多其他任务。因此就专门针对图形处理的这些操作设计了一种处理器,也就是GPU。这样CPU就可以从繁重的图形计算中解脱出来。
由于GPU是专门为了渲染设计的,那么他也就只能做渲染的那些事情。
渲染这个过程具体来说就是几何点位置和颜色的计算,这两者的计算在数学上都是用四维向量和变换矩阵的乘法,因此GPU也就被设计为专门适合做类似运算的专用处理器了。为什么说专用呢,因为很多事情他做不了。
CPU通用性强,但是专用领域性能低。工程就是折衷,这项强了,别的就弱了。再后来游戏、3D设计对渲染的要求越来越高,GPU的性能越做越强。论纯理论计算性能,要比CPU高出几十上百倍。
人们就想了,既然GPU这么强,那用GPU做计算是不是相比CPU速度能大大提升呢?于是就有了GPGPU(generalpurposeGPU,通用计算GPU)这个概念。但我们前面提到了,GPU是专门为了图像渲染设计的,他只适用于那些操作。但幸运的是有些操作和GPU本职能做的那些东西非常像,那就可以通过GPU提高速度,比如深度学习。
深度学习中一类成功应用的技术叫做卷积神经网络CNN,这种网络数学上就是许多卷积运算和矩阵运算的组合,而卷积运算通过一定的数学手段也可以通过矩阵运算完成。这些操作和GPU本来能做的那些图形点的矩阵运算是一样的。因此深度学习就可以非常恰当地用GPU进行加速了。
以前GPGPU(通用GPU)概念不是很火热,GPU设计出来就是为了图形渲染。想要利用GPU辅助计算,就要完全遵循GPU的硬件架构。而现在GPGPU越来越流行,厂家在设计和生产GPU的时候也会照顾到计算领域的需求了。