2017-04-04 214 views
3

正如问题已经提出的那样,我对于深度学习并不陌生。我知道,没有GPU的情况下,模型的学习过程会很慢。如果我愿意等,如果我只用CPU,会不会好?为什么我们需要GPU进行深度学习?

+3

,当然,这将是确定 –

+0

这将是确定,如果你不会做卷积。 GPU在处理包含卷积图层的图像数据集时确实很有帮助。对于学习目的来说CPU就足够了 –

+0

@MihailBurduja GPU不是深度学习所必需的。他们加速了很多事情(不管你是使用卷积还是简单的密集层),但他并没有问及时间。 –

回答

6

许多在计算深度学习(以及一般的神经网络)中执行的操作可以并行运行,这意味着它们可以独立计算,然后再进行汇总。这部分是因为大部分操作都是基于矢量的。

典型的消费类CPU有4到8个内核,超线程允许它们分别被当作8或16。服务器CPU可以有4到24个内核,分别有8到48个线程。此外,大多数现代CPU具有SIMD(单指令多数据)扩展,这些扩展允许它们在单个线程上并行执行矢量操作。根据您使用的数据类型,8核CPU可以一次执行8 * 2 * 4 = 64至8 * 2 * 8 = 128个矢量计算。

Nvidia新的1080ti拥有3584个CUDA核心,这意味着它可以一次执行3584个矢量计算(超线程和SIMD不会在这里发挥作用)。与8核心CPU相比,这一次的运算量要多56至28倍。因此,无论您是在训练单个网络还是多个网络来调整元参数,它在GPU上的运行速度都可能明显快于CPU。

2

取决于你在做什么,可能需要更长的时间。我有20倍的加速使用GPU。如果你阅读了一些计算机视觉论文,他们在ImageNet上训练他们的网络大约1-2周。现在想象一下,如果这花了20倍的时间...

话虽如此:有更简单的任务。例如,对于我的HASY dataset,您可以在大概3个小时内训练一个没有GPU的合理网络。类似的小数据集是MNIST,CIFAR-10,CIFAR-100。

+0

感谢Martin,你的回答也很有帮助。你能说出一些计算机视觉文件,其中作者告诉他们训练他们的网络1-2周? – Kanu

+0

VGG-net论文为2-3周:https://arxiv.org/pdf/1409.1556.pdf –

1

神经网络的计算密集部分是多个矩阵乘法。我们如何让它更快?我们可以通过同时进行所有的操作来做到这一点,而不是一个接一个地做。简而言之,我们使用GPU(图形处理单元)而不是CPU(中央处理单元)。

谷歌过去有一个强大的系统,他们专门为训练巨大的网络而建造。该系统耗资50亿美元,拥有多个CPU集群。 几年之后,斯坦福大学的研究人员在计算方面建立了相同的系统,以使用GPU来训练其深层网络。他们把成本降到了33K美元。该系统使用GPU构建,并且具有与Google系统相同的处理能力。

来源:https://www.analyticsvidhya.com/blog/2017/05/gpus-necessary-for-deep-learning/