选自Medium
作者:Slav Ivanov
参与:李泽南、路雪、刘晓坤
最近,英伟达在消费级 GPU 领域推出了 GTX 1070 Ti,如果现在想要组装一台深度学习机器,我们用哪块 GPU 最好呢?本文将详细解答这一问题。
即将进入 2018 年,随着硬件的更新换代,越来越多的机器学习从业者又开始面临选择 GPU 的难题。正如我们所知,机器学习的成功与否很大程度上取决于硬件的承载能力。在今年 5 月,我在组装自己的深度学习机器时对市面上的所有 GPU 进行了评测。而在本文中,我们将更加深入地探讨:
-
为什么深度学习需要使用 GPU
-
GPU 的哪种性能指标最为重要
-
选购 GPU 时有哪些坑需要避免
-
性价比
-
每个价位的最佳选择
GPU + 深度学习
深度学习(DL)是机器学习(ML)的一个分支。深度学习使用神经网络来解决问题。神经网络的优点之一是自行寻找数据(特征)模式。这和以前告诉算法需要找什么不一样。但是,通常这意味着该模型从空白状态开始(除非使用迁移学习)。为了从头捕捉数据的本质/模式,神经网络需要处理大量信息。通常有两种处理方式:使用 CPU 或 GPU。
计算机的主要计算模块是中央处理器(CPU),CPU 的设计目的是在少量数据上执行快速计算。在 CPU 上添加数倍的数字非常快,但是在大量数据上进行计算就会很慢。如,几十、几百或几千次矩阵乘法。在表象背后,深度学习多由矩阵乘法之类的操作组成。
有趣的是,3D 电子游戏同样依赖这些操作来渲染那些美丽的风景。因此,GPU 的作用被开发出来,它们可以使用数千个核心处理大量并行计算。此外,它们还有大量内存带宽处理数据。这使得 GPU 成为进行 DL 的完美硬件。至少,在用于机器学习的 ASIC 如谷歌的 TPU 投入市场之前,我们还没有其他更好的选择。
总之,尽管使用 CPU 进行深度学习从技术上是可行的,想获得真实的结果你就应该使用 GPU。
对我来说,选择一个强大的图形处理器最重要的理由是节省时间和开发原型模型。网络训练速度加快,反馈时间就会缩短。这样我就可以更轻松地将模型假设和结果之间建立联系。
选择 GPU 的时候,我们在选择什么?
和深度学习相关的主要 GPU 性能指标如下:
-
内存带宽:GPU 处理大量数据的能力,是最重要的性能指标。
-
处理能力:表示 GPU 处理数据的速度,我们将其量化为 CUDA 核心数量和每一个核心的频率的乘积。
-
显存大小:一次性加载到显卡上的数据量。运行计算机视觉模型时,显存越大越好,特别是如果你想参加 CV Kaggle 竞赛的话。对于自然语言处理和数据分类,显存没有那么重要。
常见问题
多 GPU(SLI/交火)
选择多 GPU 有两个理由:需要并行训练多个模型,或者对单个模型进行分布式训练。