为什么我们需要GPU进行深度学习?

时间:2017-04-04 07:27:32

标签: gpu deep-learning gpgpu

正如问题已经表明的那样,我是深度学习的新手。我知道没有GPU,模型的学习过程会很慢。如果我愿意等待,如果我只使用CPU,那会好吗?

5 个答案:

答案 0 :(得分:8)

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

典型的消费者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快得多。

答案 1 :(得分:3)

根据您的工作情况,可能需要更长时间。我有20倍的加速使用GPU。如果您阅读了一些计算机视觉论文,他们会在ImageNet上训练他们的网络大约1-2周。现在想象一下,如果这花了20倍......

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

答案 2 :(得分:1)

神经网络的计算密集部分是多重矩阵乘法。我们如何让它更快?我们可以通过同时执行所有操作而不是一个接一个地执行此操作来完成此操作。这就是为什么我们使用GPU(图形处理单元)而不是CPU(中央处理单元)的原因。

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

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

答案 3 :(得分:0)

答案 4 :(得分:-1)

深度学习就是通过使用大量的训练数据来构建现实或某种现实的某种部分的数学模型,以便您使用来自现实世界的大量训练数据已收集,然后你可以训练你的模型,这样你的数学模型可以预测其他结果当你给它新的数据作为输入,所以你基本上可以训练这个数学模型,但它需要大量的数据,这种培训需要大量的计算。因此,需要进行大量计算繁重的操作,并且还需要大量数据。因此,例如Nvidia这样的公司传统上一直在为图形制作游戏GPU,现在他们也有很大一部分收入来自人工智能和机器学习以及所有想要训练模型的科学家,你看到像Google和Facebook这样的公司,目前都在使用GPU来培训他们的ML模型。