前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为个人深度学习机器选择合适的配置

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

作者头像
AI研习社
发布于 2018-03-16 08:52:55
发布于 2018-03-16 08:52:55
2K0
举报
文章被收录于专栏:AI研习社AI研习社

对于那些一直想进行深度学习研究的同学来说,如何选择合适的配置一直是个比较纠结的问题,既要考虑到使用的场景,又要考虑到价格等各方面因素。日前,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,这将会给你带来极大的灵活性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
2023 年 Node.js 性能状态
2023 年,我们发布了 Node.js v20[1]。这是一项重要的成就,本文旨在使用科学数据评估 Node.js 性能的状况。
五月君
2024/01/04
9190
2023 年 Node.js 性能状态
Node.js 21 来了!
2023-10-17 Node.js 迎来了一个新的重大版本更新 Node.js 21。相信有同学已经感概这版本升级也太快了,我还在用 Node.js 10 结果 21 都应来了...
五月君
2023/10/24
6260
Node.js 21 来了!
2020 年 Node.js 将会有哪些新功能[每日前端夜话0xFA]
2019 年是 Node.js 诞生的第 10 个年头,npm 上可用的包数量超过了 100 万。Node.js 本身的下载量也在持续增长,同比增长了 40%。另一个重要的里程碑是 最近 Node.js加入了 OpenJS 基金会,该基金会承诺改善项目的状况和可持续性,并改善与整个 JavaScript 社区的协作。
疯狂的技术宅
2019/12/12
1.1K0
2020 年 Node.js 将会有哪些新功能[每日前端夜话0xFA]
Node.js 21发布,升级V8引擎,带来稳定的WebSteams模块和Test Runner
Node.js 团队最近 发布了 Node.js 21。这个版本引入了一些变化,包括更新 V8 JavaScript 引擎、稳定的 fetch 和 WebStreams 模块、一个用于改变模块默认设置的实验性标志、内置的 WebSocket 客户端以及测试运行器的增强。值得注意的是,作为一个奇数版本,Node.js 21 将不会有 LTS(长期支持)。
深度学习与Python
2023/11/01
2820
Node.js 21发布,升级V8引擎,带来稳定的WebSteams模块和Test Runner
Node.js 在 2020 年有什么新东西
2019 年,Node.js 已经10岁了,而 NPM 上可用的包数量也超过了 100 万个。Node.js 本身的下载数也仍在上升,同比上年增长 40%。另一个重要的里程碑是 Node.js 最近加入了 OpenJS 基金会,该基金会承诺改善项目的健康度和可持续性,并加强与整个 JavaScript 社区的协作。
coder_koala
2020/03/11
1.3K0
Node.js 20 正式发布
作者| 王强、丁晓昀 策划 | 褚杏娟 4 月 18 日,Node.js 在官方博客发布了 Node.js 20 版本。 新版亮点: 引入权限控制模型 (Permission Model) 同步的 import.meta.resolve Test Runner 到达稳定状态 V8 JavaScript 引擎更新至 11.3,,增加了 5 个新特性 支持构建单一可执行应用程序 Ada 更新至 2.0 等。 提醒一下,Node.js 14 已进入维护状态 (Maintenance LTS),名称为 Fe
深度学习与Python
2023/04/21
7340
Node.js 20 正式发布
[译] What's New for Node.js in 2020
Node.js在2019年走到了第十个年头, npm上面的包数量也超过了一百万. NodeJS自身的下载量也在以每年40%的速度持续增长. 而对于NodeJS最近的另一个里程碑便是它加入了OpenJS基金会, 该基金会旨在提高项目的健康度与可持续性, 同时与JavaScript社区有一个紧密的合作.
腾讯IVWEB团队
2020/06/28
2K0
Node.js v15.0.0 is here!
我们很高兴地宣布,Node.js 15 已于今天发布。Node.js 15 将替代 Node.js 14 成为我们的“当前”发行版,后者将在本月晚些时候升级为 LTS(长期支持)。你可以期望大约每两周看到一个 Node.js 15 的新版本,随时跟上最新的功能和更改。作为奇数发行版,Node.js 15 将不会升级为 LTS。在生产部署中使用 Node.js 15 时请记住这一点——我们通常建议在生产部署中使用 LTS 版本。
五月君
2020/11/04
1K0
Node.js 安全最佳实践
最近 Node.js 团队在官方文档上公布了一份最新的安全实践,解读了一些 Node.js 服务下一些常见的攻击场景以及预防手段,我们一起来看看吧!
ConardLi
2023/01/09
2.4K0
Node.js 安全最佳实践
2024 年必会的 10 个 Node.js 新特性,你还不知道就太落伍了!
服务器端 JavaScript 运行时的领域充满了创新,如 Bun 在兼容 Node.js API 方面的进展,以及 Node.js 运行时提供的丰富标准库和运行时功能。
童欧巴
2024/06/17
8710
2024 年必会的 10 个 Node.js 新特性,你还不知道就太落伍了!
何时使用 Bun 而不是 Node.js?
Bun 和 Node.js 是两种用于在服务器上运行 JavaScript 的 JavaScript 运行时技术。Node.js 是在 JavaScript 服务器端开发中无可争议的王者,但由于其不可思议的性能能力,Bun 也因此而受到了欢迎。然而,真正的问题是:使用 Bun 而不是 Node.js 是否真的有意义呢?
五月君
2024/05/22
6480
何时使用 Bun 而不是 Node.js?
Node.js 19 正式发布
Node.js 19 在19日正式发布了,此次更新包括将 V8 JavaScript 引擎更新到 10.7,以及默认启用 HTTP (s)/1.1 KeepAlive。
coder_koala
2022/11/28
4870
Node.js中LTS和Current的有啥区别
2016 年 10 月 18 日,Node.js v6 LTS (Boron) 发布,这也是 Node.js 启用 LTS 发布计划以来,第一次同时迎来两个 active LTS(v4 与 v6)。这系列文章将讲述 Node.js v6 LTS 带来的一系列变化,本篇主要围绕 LTS 展开。如果读者还对 Node.js LTS 的发布流程不了解,可以先阅读本篇,否则可以直接跳过阅读下一篇关于 Node.js Core 的变动。
conanma
2022/01/05
1.4K0
Node.js 15 正式版发布
前两天,Node.js官方发布了Node.js 15的正式版本,Node.js 15 将替代 Node.js 14 成为当前的的稳定发行版,后者将在本月晚些时候升级为 LTS(长期支持)版本。如果大家想体验下Node.js 15 的最新功能,可以从官方进行下载。
xiangzhihong
2022/11/30
1.8K0
Node.js宣布新的--experimental-modules【译】
原文:Announcing a new --experimental-modules
ACK
2020/01/14
1.8K0
Node.js 12中的ES模块[每日前端夜话0x9E]
多年来,在 JavaScript 生态中出现了不同形式的模块化方案。开发人员使用了明确定义的规范(如 AMD 或 CommonJS)以及简单的编码模式(如通过揭示模块模式(revealing module pattern))来得到模块化解决方案的好处。
疯狂的技术宅
2019/07/30
1.9K0
Node.js v14 官方发布说明来了
本文由Michael Dawson 和 Bethany Griggs 撰写,同时 Node.js 社区委员会和 Node.js 技术指导委员会也提供了贡献。
疯狂的技术宅
2020/04/24
2.1K0
Node.js v14 官方发布说明来了
在 Node.js 中使用 Async Hooks 处理 HTTP 请求上下文实现链路追踪
作者简介:五月君,Software Designer,公众号「Nodejs技术栈」作者。
五月君
2021/02/24
1.9K0
在 Node.js 中使用 Async Hooks 处理 HTTP 请求上下文实现链路追踪
Node.js v17 来了,看看都有哪些新功能?
Node.js v17 版本已发布,取代了 v16 做为当前版本,新的 v17 版本提供了一些新功能:基于 Promise 的其它核心模块 API、错误堆栈尾部增加 Node.js 版本信息、OpenSSL 3.0 支持、v8 JavaScript 引擎更新至 9.5。
五月君
2021/10/27
1.8K0
Node.js v17 来了,看看都有哪些新功能?
Node 10 新功能概览(译)
以代号“Dubnium”为代表的Node 10于2018年4月24日发布,并将于2018年10月进入长期支持(LTS)。JavaScript开发人员一直在激动地等待今天,今天我们来看看这个版本带来的新特征。
IMWeb前端团队
2019/12/03
7090
相关推荐
2023 年 Node.js 性能状态
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档