什么是GPU,深度学习中需要GPU吗?

在深度学习中,似乎每个人都建议使用GPU。 它是什么,没有一个,您能做得到吗?它的确切对象是谁?

什么是GPU,深度学习中需要GPU吗?

> Photo by Florian Krumm on Unsplash

任何试图大规模推广训练模型性能的数据科学家或机器学习爱好者都将在某个时候达到顶峰,并开始经历不同程度的处理滞后。 当数据集变得更大时,使用较小的训练集花费数分钟的任务现在可能需要花费更多的时间(在某些情况下是几周)。

但是什么是GPU? 它们如何与CPU相抗衡? 我的深度学习项目需要一个吗?

如果您曾经问过自己这些问题,请继续阅读…

为什么选择GPU进行深度学习

GPU经过优化,可训练人工智能和深度学习模型,因为它们可以同时处理多个计算。

它们具有大量内核,可以更好地计算多个并行进程。 此外,深度学习中的计算需要处理大量数据-这使GPU的内存带宽最合适。

有一些决定性参数可以确定是使用CPU还是GPU来训练深度学习模型:

内存带宽:

带宽是GPU比CPU更快的计算速度的主要原因之一。 对于大型数据集,CPU在训练模型时会占用大量内存。

计算庞大而复杂的作业需要占用CPU大量的时钟周期-CPU依次处理作业,并且内核数量少于同类GPU。

另一方面,独立的GPU带有专用的VRAM(视频RAM)内存。 因此,CPU的内存可用于其他任务。

什么是GPU,深度学习中需要GPU吗?

> Comparison of bandwidth for CPUs and GPUs over time

数据集大小

在深度学习中训练模型需要大量的数据集,因此在内存方面需要大量的计算操作。 为了有效地计算数据,GPU是最佳选择。 计算量越大,GPU相对于CPU的优势就越大。

优化

在CPU中优化任务要容易得多。 尽管CPU内核数量较少,但功能却比数千个GPU内核强大。

每个CPU内核可以执行不同的指令(MIMD架构),而通常在32个内核的块内组织的GPU内核在给定的时间并行执行同一条指令(SIMD架构)。

鉴于需要付出的努力,密集神经网络中的并行化非常困难。 因此,与在CPU中相比,在GPU中难以实现复杂的优化技术。

为什么我们需要更多的硬件来进行深度学习?

对于任何神经网络来说,深度学习模型的训练阶段都是最耗费资源的任务

在训练过程中,神经网络会接受输入,然后使用在训练过程中调整的权重在隐藏层中对其进行处理,然后模型发出预测。 调整权重以找到模式,以便做出更好的预测。

这两个运算本质上都是矩阵乘法。 下图可以表示一个简单的矩阵乘法

什么是GPU,深度学习中需要GPU吗?

> Source: jeremyjordan.me

在神经网络中,我们可以将第一个数组作为神经网络的输入,而第二个数组则形成其权重。

容易吧?

是的,如果您的神经网络具有大约10、100甚至100,000个参数。 一台计算机仍将能够在几分钟甚至最多几小时内处理完这一问题。

但是,如果您的神经网络具有超过100亿个参数,该怎么办? 采用传统方法来训练这种系统将需要数年时间。 您的计算机可能会在十分之一之前就放弃了。

"一个采用搜索输入并根据1亿个输出或产品进行预测的神经网络,通常每个产品约有2,000个参数。 因此,将它们相乘,神经网络的最后一层现在是2000亿个参数。 而且我还没有做任何复杂的事情。 我说的是一个非常非常简单的简单神经网络模型。" —博士 莱斯大学学生

使深度学习模型训练更快

通过简单地同时运行所有操作,而不是一个接一个地运行,可以更快地训练深度学习模型。

您可以通过使用GPU训练模型来实现。

GPU(图形处理单元)是具有专用内存的专用处理器,通常会执行渲染图形所需的浮点运算

换句话说,它是用于大量图形和数学计算的单芯片处理器,从而释放了CPU周期用于其他作业。

GPU和CPU之间的主要区别在于,与CPU相比,GPU按比例分配了更多的晶体管用于算术逻辑单元,而减少了对高速缓存和流控制的投入。

尽管CPU最适用于需要解析或解释代码中复杂逻辑的问题,但GPU是专为计算机游戏的专用图形渲染而设计的,后来经过增强以加速其他几何计算(例如,变换多边形或旋转垂直线) 进入不同的坐标系(如3D)。

GPU小于CPU,但与后者相比,GPU往往具有更多的逻辑核心(算术逻辑单元或ALU,控制单元和内存缓存)。

什么是GPU,深度学习中需要GPU吗?

> Source: fast.ai

在上表中,您可以看到GPU(红色/绿色)理论上可以完成CPU(蓝色)的操作的10–15倍。 这种加速也非常适用于实践。

如果您将CPU视为玛莎拉蒂,那么GPU可以算是一辆大卡车。

CPU(玛莎拉蒂)可以在RAM中快速获取少量包裹(3-4位乘客),而GPU(卡车)则较慢,但可以在一圈内获取大量内存(约20位乘客)。

我应该使用GPU吗?

与任何数据科学项目一样,这取决于。 在速度,可靠性和成本之间需要权衡考虑:

· 如果您的神经网络规模相对较小,那么无需GPU就可以解决问题

· 如果您的神经网络涉及大量涉及数十万个参数的计算,那么您可能要考虑投资购买GPU

通常,GPU是快速机器学习的安全选择,因为从本质上讲,数据科学模型训练由简单的矩阵数学计算组成,如果并行进行计算,则其速度可能会大大提高。

请参阅有关最佳GPU进行深度学习投资的Reddit帖子

Cloud GPU实例

您还应该考虑Cloud GPU。 如果您不想购买大量昂贵的GPU,则可以与云托管公司按需利用GPU。 它们可让您免去配置硬件的麻烦,而最重要的是,它们并不那么昂贵-使用时每小时的成本低至0.25美元。

完成后,请记住关闭云实例。

您将租用一台外国计算机/服务器,而不是自己运行。 仅关闭浏览器或关闭PC是不够的,它们仅会切断设备与该远程服务器之间的连接,而不会关闭您要付费的东西。 否则,系统会一直向您收取费用,并且会产生令人讨厌的帐单!

任何数据科学家或机器学习狂热者一生中至少会听说,深度学习需要大量硬件。 有些人在笔记本电脑上训练了简单的深度学习模型几天(通常没有GPU),这导致深度学习需要大型系统才能运行执行。

这创造了围绕深度学习的神话,为初学者创建了障碍。

我在过去几年中提到的每本书都提到了以下内容:

深度学习需要大量的计算能力才能继续运行。

但是我没有数据中心,当我在相当大的笔记本电脑上建立第一个深度学习模型时,我知道共识要么是错误的,要么是真实的。

您无需接管Google即可成为深度学习专家。

CPU最擅长顺序处理单个更复杂的计算,而GPU更擅长并行处理多个但更简单的计算。

GPU计算实例的成本通常是CPU计算实例的2-3倍,因此,除非您在基于GPU的训练模型中看到2-3倍的性能提升,否则建议使用CPU。

什么是GPU,深度学习中需要GPU吗?

> Photo by Alex Knight on Unsplash

与往常一样,非常感谢您的阅读! 请在评论中告诉我您的想法或想写的内容。 我也很容易受到批评!

下篇再见!

(本文翻译自Jason Dsouza的文章《What is a GPU and do you need one in Deep Learning?》,参考:https://towardsdatascience.com/what-is-a-gpu-and-do-you-need-one-in-deep-learning-8a323476e109)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。