开发 | 为个人深度学习机器选择合适的配置

AI科技评论按:对于那些一直想进行深度学习研究的同学来说,如何选择合适的配置一直是个比较纠结的问题,既要考虑到使用的场景,又要考虑到价格等各方面因素。

日前,medium上的一篇文章为我们详细描述了该如何为个人的深度学习机器选择配置,主要该进行哪些方面的考虑。

AI科技评论编译整理如下:

作为一名业余爱好者,在探索和解决深度学习问题时,亚马逊 EC2 实例的运行成本太高了。

在一开始,我采用的是 Reserved 实例收费模式,因为我对云生态系统不是很懂。

后来,在运行结构良好的实验时,Spot 实例也成了我的选择之一。但用这种方法去启动和执行实验往往会碰到问题,我主要会在为备份和恢复数据/进程设置环境时碰到问题。

很感谢 Alex Ramos 和 Slav Ivanov 提供的 Classic 和 24X7 版本的 EC2 Spotter 工具,这在使用 spot 实例时很有用。(如果你仍然使用 Spot 实例的话可以试试他们的提供的工具)

在使用亚马逊 EC2 实例大约6个月后,我意识到,长远来看,还是买一个属于自己的机器会更加便宜。买机器之后,我可以更好地控制实验,并且可能会取得比在云端更好的效果。

在互联网上进行详尽的调查之后,我下定决心买属于自己的机器,然后我开始研究如何为本地深度学习来选择组件。

如何选择深度学习的组件?这真的很困扰那些刚开始实验的新手。这要求用户拥有一些关于构建系统的基本知识,以保证较高的性价比。

这篇文章试图帮助刚开始进行深度学习的读者选择机器配置,在选择产品之前帮助他们了解更多参数。

开 始

首先,你必须定下你最大需要多少块GPU,如果你经常进行机器学习研究,那你可能需要更多 GPU,这可以帮助你并行运行多个任务,你可以同时尝试不同的模型结构、数据规范化、超参数等等。

我的建议:如果你是一个普通研究员/学生/业余爱好者,可以考虑双 GPU。如果你打算运行大型的模型,并参加像 ImageNet 那样需要大量计算的竞赛,你可能需要考虑多 GPU 结构。

一旦你想清楚自己想要进行哪种研究,接下来就可以考虑需要的 PCIe 通道数了。

双 GPU(最多两块GPU):24条 PCIe 通道(当使用共享 PCle 通道的 SSD 或同时使用两块 GPU 时,可能会出现延迟)

多 GPU (最多4 块 GPU): 40到44条 PCIe 通道

为什么首先考虑 PCIe 通道?

实际情况下,在对磁盘进行访问操作或数据增加时,数据流到GPU上会出现瓶颈。一块 GPU 需要16条 PCIe 通道才能满负荷运转。

这篇文章将着重为大家介绍双 GPU 系统,下次我也将带来多 GPU 系统的介绍。

双 GPU

1)主板

一旦确定了 PCIe 通道的需求,接下来就可以挑选主板芯片组了:

下表给出了在不同芯片组下可用 PCIe 通道的个数:

注:理想情况下,单个 GPU 发挥最优性能需要16个 PCIe 通道。

因此,即使 B150、B250、H110、H170、H270 这样的芯片组支持英特尔处理器,它们也很少用于深度学习,因为对于深度学习应用来说,需要更多的 PCIe 通道数。因此,首选芯片组如下:

Z170 — 支持第6/7代英特尔处理器。使用第7代可能需要BIOS更新。

Z270 — 支持第6/7代英特尔处理器。

(最新的) Z370 — 支持第8代英特尔处理器。

一旦你决定了芯片组,可以利用 PC Partpicker 来选择主板,下面是链接:

https://pcpartpicker.com/products/motherboard/

你需要注意的有:

  1. 外形规格(例如ATX,微型ATX,EATX等)
  2. PCIe slot 数(最小2个 slot)
  3. 最大支持内存(首选 64GB)
  4. 内存 slot 数(最小4个 slot)
  5. SSD 和 SATA slot 数(你可以考虑一下)

2)处理器

选择主板之后,因为有 socket 类型等的限制,处理器的选择范围就缩小了,CPU 的选择可能会进一步依赖于 GPU。正如前面提到的,对于深度学习应用来说,CPU 主要负责数据处理和与 GPU 的通信。因此,如果我们想在数据预处理中进行并行计算,那每个核的核数和线程数将至关重要。建议大家选择多核系统(最好是4核)来处理这些任务。

需要注意的有:

  1. Socket 类型
  2. 核数量
  3. 费用

PS:一些处理器中可能不带散热风扇。

下面是用 PC Partpicker 选择处理器的地址:

https://pcpartpicker.com/products/cpu/#m=21

内 存

当处理大数据集时,它们可能需要存储于内存中。RAM 的大小决定了内存中可以容纳的数据集的量。

对于深度学习应用来说,至少选择 16G 的内存(Jeremy Howard 建议选择 32G 的内存)。Clock 越高越好,建议大家最小选择 2400 MHZ的。

要记住,让单个 stick 的内存更大!

因为这可以使得剩余 slot 的扩展空间更大。我看到很多人用4*8GB的内存取代2*16GB的内存,仅仅只是因为这样价格比较便宜,但最后会导致没有升级空间。

存储器

SSD变得越来越便宜,速度也更快了,所以HDD的价格也在持续下降。

最好有一个小容量的SSD和一个大容量的HHD。SSD倾向于存储和检索被经常使用的数据。HDD则主要用来存储将来会使用的数据。

SSD ——存储使用中的数据,价格昂贵,推荐最小买 128GB 的

HDD ——存储各种用户数据,价格相对来说会便宜一点,推荐最小买 2TB,7200RPM 的

GPU

GPU 是配置用于深度学习的机器的核心,它们决定了在训练神经网络过程中获得的性能增益。

深度学习中涉及的大部分计算都是矩阵运算,所以在相同的并行模式下,GPU 的表现胜过传统 CPU。

GPU 内部有很多叫核的小型计算单元,单元中的线程能保证矩阵运算更加快速。GPU 的内存带宽也可以使得它支持对大量数据进行操作。

Tim Dettmers之前写过一篇关于如何选择用于深度学习的 GPU 的文章,这篇文章很有代表性,一旦有了新卡他也会更新,在选择 GPU 之前大家可以看下他的这篇文章。链接如下:

http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/

下面是他关于 GPU 选择的建议:

  • 最佳 GPU 选择:Titan Xp
  • 高效但昂贵:GTX 1080 Ti, GTX 1070, GTX 1080
  • 高效且便宜:GTX 1060 (6GB)
  • 要是处理的数据集在 250 GB 以上,那么你的选择最好是 GTX Titan X (Maxwell)、 NVIDIA Titan X Pascal 或 NVIDIA Titan Xp
  • 要是资金不足,那就选择 GTX 1060 (6GB)
  • 完全没钱:GTX 1050 Ti (4GB)
  • 参加kaggle比赛:常规比赛选择 GTX 1060 (6GB),深度学习类型的比赛,选择GTX 1080 Ti
  • 经常参加比赛的计算机视觉研究人员:NVIDIA Titan Xp,不需要升级现有的 Titan X (Pascal 或 Maxwell)
  • 研究人员:GTX 1080 Ti。在进行类似于自然语言处理的任务时,也可以选择 GTX 1070 或 GTX 1080,大家可以检查下当前模型的内存需求如何。
  • 想要构造 GPU 集群:这有点复杂,你可以点击如下链接参考 http://timdettmers.com/2014/09/21/how-to-build-and-use-a-multi-gpu-system-for-deep-learning/
  • 刚刚开始想要认真进行深度学习的研究:GTX 1060 (6GB)。根据你接下来选择的领域(初创公司,Kaggle,研究,深度学习应用),卖掉之前的 GTX 1060,然后购买更合适的。
  • 抱着试一试的心态来进行深度学习研究:GTX 1050 Ti (4或2GB)

如果预算有限,强烈推荐初学者买 1060 6GB 的 GPU,新旧都可以。

如果预算可以增加一点,那么建议买最近发布的 1070ti (大约430美元),它与 1080 的性能几乎一样,但价格较低(几乎与 1070 相同)。

不要去买 1070,除非你有站得住脚的理由。如果你有足够的钱,那就买 1080ti。

再啰嗦一遍,如果你真的很热衷于进行研究,那么最好买2块 1070ti,而不是1块 1080ti,这将会给你带来极大的灵活性。

via:medium

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张红林的专栏

大规模机器学习框架的四重境界

如何利用相对廉价的机器搭建分布式超大规模机器学习集群是一件非常复杂的事情,本文尝试梳理一下这方面的历史和现行的最佳实践。

1.5K2
来自专栏人人都是极客

第二课:开发机器学习app前的准备工作

框架的选择 如上一节课所说,随着机器学习的发展,目前已经出现很多不错的学习框架,这里我们做个对比: TensorFlow:深度学习最流行的库之一,它不仅便携、高...

31510
来自专栏机器学习算法与Python学习

5月,机器学习开源新项目Top-10

1614
来自专栏CVer

NIPS 2018 收录论文完整清单

根据谷歌学术公布的2018年最新版学术指标(Google Scholar Metrics,GSM)榜单,NIPS在人工智能类目中位列第一,h5指数134。同时,...

7221
来自专栏专知

【开源】基于Keras的知识图谱处理实战

【导读】近日,Daniel Shapiro博士利用开源的图结构卷积网络进行知识图谱处理,并应用于交易数据的欺诈检测,其知识图谱处理相关源码也开源出来,并且Dan...

1K4
来自专栏机器学习人工学weekly

机器学习人工学weekly-2018/2/18

新年快乐! 注意下面很多链接都需要翻墙,无奈国情如此。 1. RL相关 1.1 DeepMind发布IMPALA算法和新的RL测试环境DMLab-30 ?...

31311
来自专栏人工智能

一文详解如何使用Python和Keras构建属于你的“AlphaZero AI”

图:pixabay 本文来自于微信公众号:雷克世界 编译 | 嗯~是阿童木呀、KABUDA 在这篇文章中,我将试图对以下三件事情进行阐述: 1.AlphaZer...

2378
来自专栏企鹅号快讯

第二课:开发机器学习app前的准备工作

框架的选择 如上一节课所说,随着机器学习的发展,目前已经出现很多不错的学习框架,这里我们做个对比: TensorFlow:深度学习最流行的库之一,它不仅便携、高...

2557
来自专栏AI研习社

为个人深度学习机器选择合适的配置

对于那些一直想进行深度学习研究的同学来说,如何选择合适的配置一直是个比较纠结的问题,既要考虑到使用的场景,又要考虑到价格等各方面因素。日前,medium上的一篇...

6245
来自专栏机器之心

资源 | 从Brain.js到Mind,一文收录11个移动端Javascript机器学习库

选自blog.bitsrc.io 作者:Jonathan Saring 机器之心编译 参与:程耀彤、黄小天 本文作者在构建 Bit 的过程中探索和尝试了把 Ja...

3656

扫码关注云+社区

领取腾讯云代金券