[英]Why do we need GPU for Deep Learning?
正如问题已经暗示的那样,我是深度学习的新手。 我知道模型的学习过程在没有 GPU 的情况下会很慢。 如果我愿意等待,如果我只使用CPU可以吗?
在计算深度学习(以及一般的神经网络)中执行的许多操作可以并行运行,这意味着它们可以独立计算然后在以后聚合。 这部分是因为大多数操作都是在向量上进行的。
典型的消费级 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 有 20 倍的加速。 如果你阅读一些计算机视觉论文,他们会在 ImageNet 上训练他们的网络大约 1-2 周。 现在想象一下,如果这需要 20 倍的时间......
话虽如此:有更简单的任务。 例如,对于我的HASY 数据集,您可以在大约 3 小时内在没有 GPU 的情况下训练一个合理的网络。 类似的小数据集有 MNIST、CIFAR-10、CIFAR-100。
神经网络的计算密集部分是多个矩阵乘法。 我们如何让它更快? 我们可以通过同时执行所有操作而不是一个接一个地执行来做到这一点。 简而言之,这就是为什么我们使用 GPU(图形处理单元)而不是 CPU(中央处理单元)的原因。
谷歌曾经有一个强大的系统,他们专门为训练巨大的网络而构建的。 该系统耗资 50 亿美元,具有多个 CPU 集群。 几年后,斯坦福大学的研究人员在计算方面构建了相同的系统,以使用 GPU 训练他们的深度网络。 他们将成本降低到 33,000 美元。 这个系统是使用 GPU 构建的,它提供了与谷歌系统相同的处理能力。
资料来源: https : //www.analyticsvidhya.com/blog/2017/05/gpus-necessary-for-deep-learning/
深度学习就是通过使用大量训练数据来构建现实或现实的某种部分的数学模型以用于某种特定用途,因此您可以使用您收集的来自现实世界的大量训练数据并然后你可以训练你的模型,这样当你给它新的数据作为输入时,你的数学模型可以预测其他结果,所以你基本上可以训练这个数学模型,但它需要大量数据,而这种训练需要大量计算。 因此,需要进行大量计算繁重的操作,而且您还需要大量数据。 因此,例如像英伟达这样传统上一直在为图形制作游戏 GPU 的公司,现在他们也有很大一部分收入来自人工智能和机器学习以及所有这些想要训练他们的模型的科学家,你看谷歌和 Facebook 等公司目前都在使用 GPU 来训练他们的机器学习模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.