1、GPU

显卡(GPU)是深度学习的重要部件,甚至比CPU更重要。做深度学习不用GPU只用CPU显然是不明智的,慢的如乌龟,跑个模型等几天,难熬,但适合摸鱼

使用16bit的RTX 2070或者RTX 2080 Ti性价比更高。另外购买二手的32bit GTX 1070、GTX 1080或者1080 Ti也是不错的选择。

除了GPU核心,显存(GPU RAM)也是不可忽视的部分。RTX比GTX系列显卡在显存方面更具优势,在显存相同的情况下,RTX能够训练两倍大的模型。

通常对显存的要求如下:

  • 如果想在研究中追求最高成绩:显存>=11 GB;

  • 在研究中搜寻有趣新架构:显存>=8 GB;

  • 其他研究:8GB;

  • Kaggle竞赛:4~8GB;

  • 创业公司:8GB(取决于具体应用的模型大小)

  • 公司:打造原型8GB,训练不小于11GB

需要注意的是,如果你购买了多个RTX显卡,一定不要忽视散热。两个显卡堆叠在相邻PCI-e插槽,很容易令GPU过热降频,可能导致性能下降30%。


2、内存

选择内存(RAM)有两个参数:时钟频率、容量

2.1、时钟频率

内存频率和数据转移到显存的速度无关,提高频率最多只能有3%的性能提升

2.2、内存容量

内存大小不会影响深度学习性能,但是它可能会影响你执行GPU代码的效率。内存容量大一点,CPU就可以不通过磁盘,直接和GPU交换数据。

所以用户应该配备与GPU显存匹配的内存容量。如果有一个24GB显存的Titan RTX,应该至少有24GB的内存。但是,如果有更多的GPU,则不一定需要更多内存。

内存关系到你能不能集中资源,解决更困难的编程问题。如果有更多的内存,你就可以将注意力集中在更紧迫的问题上,而不用花大量时间解决内存瓶颈。

额外的内存对特征工程非常有用。


3、CPU

过分关注CPU的性能和PCIe通道数量,是常见的认知误区。用户更需要关注的是CPU和主板组合支持同时运行的GPU数量。

3.1、CPU和PCIe

PCIe通道对深度学习性能几乎没有影响。

如果只有一个GPU,PCIe通道的作用只是快速地将数据从内存传输到显存。

ImageNet里的32张图像(32x225x225x3)在16通道上传输需要1.1毫秒,在8通道上需要2.3毫秒,在4通道上需要4.5毫秒。

这些只是是理论数字,实际上PCIe的速度只有理论的一半。PCIe通道通常具有纳秒级别的延迟,因此可以忽略延迟。

用32张ImageNet图像的mini-batch,训练ResNet-152模型所需要的传输时间:

  • 前向和后向传输:216毫秒

  • 16个PCIe通道CPU-> GPU传输:大约2毫秒(理论上为1.1毫秒)

  • 8个PCIe通道CPU-> GPU传输:大约5毫秒(2.3毫秒)

  • 4个PCIe通道CPU-> GPU传输:大约9毫秒(4.5毫秒)

因此,在总用时上,从4到16个PCIe通道,性能提升约3.2%。但是,如果PyTorch的数据加载器有固定内存,则性能提升为0%。因此,如果使用单个GPU,请不要在PCIe通道上浪费金钱。

在选择CPU PCIe通道和主板PCIe通道时,要保证你选择的组合能支持你想要的GPU数量。如果买了支持2个GPU的主板,而且希望用上2个GPU,就要买支持2个GPU的CPU,但不一定要查看PCIe通道数量。

3.2、PCIe通道和多GPU并行计算

如果GPU数量少于4个,则根本不必关心PCIe通道。几乎很少有人同时运行超过4个GPU,所以不要在PCIe通道上花冤枉钱,大型的数据模型例外,真有8卡GPU就可以考虑PCIe通道问题

3.3、CPU核心数

为了选择CPU,首先需要了解CPU与深度学习的关系。

CPU为深度学习中起到什么作用?当在GPU上运行深度网络时,CPU几乎不会进行任何计算。CPU的主要作用有:(1)启动GPU函数调用(2)执行CPU函数。

到目前为止,CPU最有用的应用是数据预处理。有两种不同的通用数据处理策略,具有不同的CPU需求。

第一种策略是在训练时进行预处理,第二种是在训练之前进行预处理。

对于第一种策略,高性能的多核CPU能显著提高效率。建议每个GPU至少有4个线程,即为每个GPU分配两个CPU核心。

对于第二种策略,不需要非常好的CPU。建议每个GPU至少有2个线程,即为每个GPU分配一个CPU核心。用这种策略,更多内核也不会让性能显著提升。

3.4、CPU时钟频率

4GHz的CPU性能是否比3.5GHz的强?对于相同架构处理器的比较,通常是正确的。但在不同架构处理器之间,不能简单比较频率。CPU时钟频率并不总是衡量性能的最佳方法。

在深度学习的情况下,CPU参与很少的计算:比如增加一些变量,评估一些布尔表达式,在GPU或程序内进行一些函数调用。所有这些都取决于CPU核心时钟率。


4、硬盘/固态硬盘(SSD)

通常,硬盘不会限制深度学习任务的运行,但如果小看了硬盘的作用,可能会让你追、悔、莫、及。

想象一下,如果你从硬盘中读取的数据的速度只有100MB/s,那么加载一个32张ImageNet图片构成的mini-batch,将耗时185毫秒。

相反,如果在使用数据前异步获取数据,将在185毫秒内加载这些mini-batch的数据,而ImageNet上大多数神经网络的计算时间约为200毫秒。所以,在计算状态时加载下一个mini-batch,性能将不会有任何损失。

推荐固态硬盘(SSD),SSD在手,舒适度和效率皆有。和普通硬盘相比,SSD程序启动和响应速度更快,大文件的预处理更是要快得多。

顶配的体验就是NVMe SSD了,比一般SSD更流畅。


5、电源装置(PSU)

一个程序员对电源最基础的期望,首先得是能满足各种GPU所需能量吧。随着GPU朝着更低能耗发展,一个质量优秀的PSU能陪你走很久。

应该怎么选?计算方法:将电脑CPU和GPU的功率相加,再额外加上10%的功率算作其他组件的耗能,就得到了功率的峰值。

举个例子,如果你有4个GPU,每个功率为250瓦,还有一个功率为150瓦的CPU,则需电源提供4×250+150+100=1250瓦的电量。

通常会在此基础上再额外添加10%确保万无一失,那就总共需要1375瓦。所以这种情况下,电源性能需达1400瓦。

还有一点得注意,即使一个PSU达到了所需瓦数,也可能没有足够的PCIe 8-pin或6-pin的接头,所以买的时候还要确保电源上有足够多的接头接GPU。

另外,买一个能效等级高的电源,特别是当你需要连很多GPU并且可能运行很长时间的时候,原因你懂的。


6、CPU和GPU的冷却

对于产热大户CPU和GPU来说,散热性不好会降低它们的性能。对CPU来说,则标配的散热器,或者AIO水冷散热器都是不错的选择。但GPU该用哪种散热方案,却是个复杂的事。

6.1、风冷散热

如果只有单个GPU,风冷是安全可靠的,但若你GPU多达3-4个,靠空气冷却可能就不能满足需求了。

目前的GPU会在运行算法时将速度提升到最大,所以功耗也达到最大值,一旦温度超过80℃,很有可能降低速度,无法实现最佳性能。

对于深度学习任务来说这种现象更常见了,一般的散热风扇远达不到所需效果,运行几秒钟就达到温度阈值了。如果是用多个GPU,性能可能会降低10%~25%。

怎么办?目前,英伟达GPU很多是针对游戏设计的,所以对于Windows系统进行了专门的优化,也可以轻松设置风扇方案。

但在Linux系统中这招就不能用了,麻烦的是,很多深度学习库也都是针对Linux编写的。

这是一个问题,但也不是无解。

在Linux系统中,你可以进行Xorg服务器的配置,选择“coolbits”选项,这对于单个GPU还是很奏效。

若你有多个GPU, 就必须模拟一个监视器,如果你想在空气冷却的环境中运行3-4个小时,则最应该注意风扇的设计。

目前市场上的散热风扇原理大致有两种:鼓风式的风扇将热空气从机箱背面推出,让凉空气进来;非鼓风式的风扇是在GPU中吸入空气达到冷却效果。

所以,如果你有多个GPU彼此相邻,那么周围就没有冷空气可用了,所以这种情况,一定不要用非鼓风式的散热风扇了。

6.2、水冷散热

水冷散热虽然比风冷法成本略高,但很适用于多个GPU相邻的情况,它能hold住四个最强劲的GPU保持周身凉爽,是风冷无法企及的效果。

另外,水冷散热可以更安静地进行,如果你在公共区域运行多个GPU,水冷的优势更为凸显了。

6.3、结论

对于单个GPU,风冷便宜也够用;多个GPU情况下,鼓风式的空气冷却比较便宜,可能会带来10%~15%的性能损失。如果想追求散热极致,水冷散热安静且效果最好。

所以,风冷or水冷都合理,看你自己的实际情况和预算了。通常情况下,还是考虑下低成本的风冷吧。


7、主板

主板应该有足够的PCIe插槽来支持所需的GPU数量。但需要注意的是,大多数显卡宽度需要占用两个PCIe插槽。

如果打算使用多个GPU,就要购买PCIe插槽之间有足够空间的主板,确保显卡之间不会相互遮挡。


8、机箱

选机箱的时候,必须保证机箱能装下主板顶部的全长GPU,虽然大部分机箱是没问题的,但是万一你买小了,那就得看商家给不给你七天无理由了……

所以,买之前最好确认一下机箱的尺寸规格,也可以搜一下机箱装着GPU的图,有别人的成品图的话就能买得放心一些。

另外,如果你想用定制水冷的话,保证你的机箱能装得下散热器,尤其是给GPU用定制水冷的时候,每个GPU的散热器都需要占空间。


9、显示器

作为一个成熟的技术人员,用多台显示器是基本配置了。


10、太长不看版

GPU

RTX 2070、RTX 2080 Ti、GTX 1070、GTX 1080、GTX 1080,这些都不错。

CPU

1.给每个GPU配1-2个CPU核心,具体要看你预处理数据的方式;

2.频率要大于2GHz,CPU要能支持你的GPU数量;

3.PCIe通道不重要。

内存

1.时钟频率无关紧要,内存买最便宜的就行了;

2.内存 ≥ 显存最大的那块GPU的RAM;

3.内存不用太大,用多少买多少;

4.如果你经常用大型数据集,买更多内存会很有用。

硬盘/SSD

1.给你的数据集准备足够大的硬盘(≥3TB);

2.有SSD会用的舒坦一些,还能预处理小型数据集。

PSU

1.需要的功率最大值≈(CPU功率+GPU功率)×110%;

2.买一个高能效等级的电源,特别是当你需要连很多GPU并且可能运行很长时间的时,这样可以节省很多电费;

3.买之前请确保电源上有足够多的接头(PCIe 8-pin或6-pin)接GPU。

散热

CPU:

标准配置的CPU散热器或者AIO水冷散热器;

GPU:

1.单个GPU,风冷散热即可;

2.若用多个GPU,选择鼓风式风冷散热或水冷散热。

主板

准备尽可能多的链接GPU的PCle插槽,一个GPU需要两个插槽,每个系统最多4个GPU,不过你也要考虑GPU的厚度。

显示器

为了提高效率,多买几块屏幕吧。

深度学习机器配置 装机指南:从GPU到显示器,全套硬件推荐相关推荐

  1. 深度 | 从硬件配置到软件安装,一台深度学习机器的配备指南

    本文作者 Roelof Pieters 是瑞典皇家理工学院 Institute of Technology & Consultant for Graph-Technologies 研究深度学习 ...

  2. 初学者深度学习工作站配置

    本文使用人群为: 深度学习小白或者入门者 配置工作站预算不高者(1w内) 穷书生 若有预算高者或深度学习进阶的朋友,推荐几篇关于深度学习工作站配置文章 1.知乎匿名用户 2.Time Dettmers ...

  3. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  4. 【20210122期AI简报】保姆级深度学习环境配置指南、寒武纪首颗AI训练芯片亮相...

    导读:本期为 AI 简报 20210122 期,将为您带来 9 条相关新闻,新增论文推送,在文章底部,祝各位牛年大吉~ 本文一共 3700 字,通篇阅读结束需要 7~10 分钟 1. 保姆级教程:深度 ...

  5. 天才少年稚晖君 | 【保姆级教程】个人深度学习工作站配置指南

    天才少年稚晖君 | [保姆级教程]个人深度学习工作站配置指南 来源:https://zhuanlan.zhihu.com/p/336429888 0. 前言 工作原因一直想配置一台自己的深度学习工作站 ...

  6. 深度学习环境配置指南/YOLOv8目标检测实践

    深度学习环境配置指南以YOLOV8 为例 简介 软件准备 部分安装难点 了解yolov8 准备yolov8运行的环境 跑一个例程 运行一个例程 Load a model 简介 实验室来了很多新同学,本 ...

  7. 深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:伍天舟.马曾欧.陈信达 入门深度学习,很多人经历了从入门到放弃的心 ...

  8. 深度学习环境配置指南:Pytorch、TensorFlow、Keras

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Yukyin@知乎 来源丨https://zhuanlan.z ...

  9. 【深度学习】相当全面的深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)...

    作者:伍天舟.马曾欧.陈信达 入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了入门第一道关卡:环境配置问题.俗话说,环境配不对,学习两行泪. 如果你正在面临配置环境的痛苦,不管你是W ...

最新文章

  1. js 缺少标识符、字符串或数字
  2. QT的QElapsedTimer类的使用
  3. android设置输入框输入字符限制,Android里限制EditText控件可以输入字符内容的范围的方法...
  4. linux系统 硬链接和软链接
  5. spring 4 异常HttpMediaTypeNotAcceptableException解决方案
  6. dedecms 文章列表被加粗的加爵办法
  7. 微信公众平台针对iBeacon 增加摇一摇周边功能
  8. ECMWF ERA-interim数据下载——手动下载
  9. python德巴赫猜想_python实现哥德巴赫猜想(任何大于或者等于6的整数都可以写成2个素数之和)...
  10. Windows10设置电脑还原点
  11. hihoCoder 题目答案
  12. 如何保证数据在传输过程中的安全
  13. 自定义函数求圆和圆柱体的表面积
  14. 海淘 海外购 iherb 礼券码 优惠码
  15. 设计模式学习(八) 模板方法模式
  16. Ansible简介及各模块用法实操
  17. 小班安全使用计算机教案,小班安全教案《使用学习用具》
  18. winds_mysql8.0安装方法
  19. 机动车辆保险反欺诈的大数据智能化研究
  20. ubuntu7.04下网络电视P2P

热门文章

  1. 深度神经网络(DNN)损失函数和激活函数的选择
  2. 机器学习研究与开发平台的选择
  3. python判断txt文件是否为空_Python中的空值怎么判断
  4. html转图片_jupyter lab 笔记添加图片的方法汇总
  5. 数据库新秀 postgresql vs mongo 性能PK
  6. nodejs安装node-rsa遇到的问题及解决
  7. mysql表名查询sql
  8. spring与memcache的整合
  9. Where Should an Architect Begin?--reference
  10. Redis configuration