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

对于那些一直想进行深度学习研究的同学来说,如何选择合适的配置一直是个比较纠结的问题,既要考虑到使用的场景,又要考虑到价格等各方面因素。日前,medium上的一篇文章(http://t.cn/RYLYxXP)为我们详细描述了该如何为个人的深度学习机器选择配置,主要该进行哪些方面的考虑。以下是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(http://t.cn/RY9vEzX)来选择主板。

你需要注意的有:

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

2.处理器

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

需要注意的有:

  • Socket 类型
  • 核数量
  • 费用

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

下面是用 PC Partpicker 选择处理器的地址:http://t.cn/RY9PAn5

内存

当处理大数据集时,它们可能需要存储于内存中。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://t.cn/R6sZh27)。

下面是他关于 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://t.cn/RY9PQyY
  • 刚刚开始想要认真进行深度学习的研究:GTX 1060 (6GB)。根据你接下来选择的领域(初创公司,Kaggle,研究,深度学习应用),卖掉之前的 GTX 1060,然后购买更合适的。
  • 抱着试一试的心态来进行深度学习研究:GTX 1050 Ti (4或2GB)

如果预算有限,强烈推荐初学者买 1060 6GB 的 GPU,新旧都可以。如果预算可以增加一点,那么建议买最近发布的 1070ti (大约430美元),它与 1080 的性能几乎一样,但价格较低(几乎与 1070 相同)。不要去买 1070,除非你有站得住脚的理由。如果你有足够的钱,那就买 1080ti。

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

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2017-12-03

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CVer

NIPS 2018 收录论文完整清单

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

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

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

1614
来自专栏机器之心

教程 | 使用Gym和CNN构建多智能体自动驾驶马里奥赛车

5126
来自专栏PPV课数据科学社区

【学习】R语言中的情感分析与机器学习

#玩转大数据#利用机器学习可以很方便的做情感分析。本篇文章将介绍在R语言中如何利用机器学习方法来做情感分析。在R语言中,由Timothy P.Jurka开发的情...

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

干货 | 数据挖掘知识点整理

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 1. 数据、信息和知识是广义数据表...

3247
来自专栏人工智能头条

黄金三镖客之TensorFlow版

2123
来自专栏专知

【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现

【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值...

3084
来自专栏大数据挖掘DT机器学习

数据挖掘 知识重点(整理版)

1. 数据、信息和知识是广义数据表现的不同形式。 2. 主要知识模式类型有:广义知识,关联知识,类知识,预测型知识,特异型知识 3. web挖掘研究的主要...

4027
来自专栏PPV课数据科学社区

构想:中文文本标注工具

项目地址 | https://github.com/crownpku/Chinese-Annotator ? 自然语言处理的大部分任务是监督学习问题。序列标注问...

54811
来自专栏mwangblog

几种蚁群算法介绍

最早的蚁群算法,其在小规模TSP中性能尚可,再大规模TSP问题中性能下降,容易停滞。其解决旅行商问题(TSP)过程大致如下:

2943

扫码关注云+社区

领取腾讯云代金券