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

Why do we need GPU for Deep Learning?

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

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

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

在计算深度学习(和一般的神经网络)中执行的许多操作可以 运行 并行,这意味着它们可以独立计算然后聚合。这在一定程度上是因为大多数操作都是针对向量的。

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

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

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

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

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