新闻热线:15379009688,0931-4809111   新闻邮箱:zglzw2012@163.com  QQ:1538783093  

设为首页

您当前的位置 : 兰州网  >  数码科技  >  电脑

Titan XP值不值?一文教你如何挑选深度学习GPU


稿源:机器之心 编辑:庄泽帆 发布时间:2017-11-23 14:27      【选择字号:

  本文作者slav Ivanov在今年早些时候曾介绍过如何用1700美元预算搭建深度学习机器(参见:教程|从硬件配置、软件安装到基准测试,1700美元深度学习机器构建指南)。最近,英伟达在消费级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有两个理由:需要并行训练多个模型,或者对单个模型进行分布式训练。

  并行训练多个模型是一种测试不同原型和超参数的技术,可缩短反馈周期,你可以同时进行多项尝试。

  分布式训练,或在多个显卡上训练单个模型的效率较低,但这种方式确实越来越受人们的欢迎。现在,使用TensorFlow、Keras(通过Horovod)、CNTK和PyTorch可以让我们轻易地做到分布式训练。这些分布式训练库几乎都可以随GPU数量达成线性的性能提升。例如,使用两个GPU可以获得1.8倍的训练速度。

  PCIe通道:使用多显卡时需要注意,必须具备将数据馈送到显卡的能力。为此,每一个GPU必须有16个PCIe通道用于数据传输。Tim Dettmers指出,使用两个有8个PCIe通道的GPU,性能应该仅降低“0—10%”。

  对于单个GPU而言,任何桌面级处理器和芯片组如Intel i5 7500和Asus TUF Z270需要使用16个通道。

  然而,对于双GPU,你可以使用8x/8x通道,或者使用一个处理器和支持32PCIe通道的主板。32个通道超出了桌面级CPU的处理能力。使用Intel Xeon组合MSI—X99A SLI PLUS是可行的方案。

  对于3个或4个GPU,每个GPU可使用8x通道,组合支持24到32个PCIe通道的Xeon。

  如果需要使用3到4个有16个PCIe通道的GPU,你得有一个怪兽级处理器。例如AMD ThreadRipper(64个通道)和相应的主板。

  总之,GPU越多,需要越快的处理器,还需要有更快的数据读取能力的硬盘。

  英伟达还是AMD

  英伟达已经关注深度学习有一段时间,并取得了领先优势。他们的CUDA工具包具备扎实的技术水平,可用于所有主要的深度学习框架——TensorFlow、PyTorch、Caffe、CNTK等。但截至目前,这些框架都不能在OpenCL(运行于AMD GPU)上工作。由于市面上的AMD GPU便宜得多,我希望这些框架对OpenCL的支持能尽快实现。而且,一些AMD卡还支持半精度计算,从而能将性能和显存大小加倍。

  今年夏天,AMD还发布了ROCm平台提供深度学习支持,它同样适用于主流深度学习库(如PyTorch、TensorFlow、MxNet和CNTK)。目前,ROCm仍然在不断开发中。

  然而目前而言,如果想做深度学习的话,还是选择英伟达吧。

  其它硬件

  你的GPU还需要以下这些硬件才能正常运行:

  硬盘:首先需要从硬盘读取数据,我推荐使用固态硬盘,但机械硬盘也可以。

  CPU:深度学习任务有时需要用CPU解码数据(例如,jpeg图片)。幸运的是,任何中端现代处理器都能做得不错。

  主板:数据需要通过主板传输到GPU上。单显卡可以使用几乎任何芯片组都可以使用。

[1]  [2]  [3]  下一页  尾页