深度学习的完整硬件指南

时间:2019-08-14 来源: 星座
皇家娱乐官方

6426904050f3c5b1f61e19fe2da54e34.jpeg

一旦硬件像海一样深,你如何把所有的钱花在刀片上?

深度学习的完整硬件指南

作者:Tim Dettmers |

译者:linlh,塔夫斯大学,Ryan222(重庆邮电大学)

深度学习是计算密集型的,毫无疑问这需要一个多核高速CPU。但是有必要购买更快的CPU吗?构建深度学习系统最糟糕的事情之一就是在不必要的硬件上浪费钱。在本文中,我将逐步教您如何使用低成本硬件构建高性能系统。

多年来,我共建了七个不同的深度学习工作站。尽管经过仔细的研究和推理,我在选择硬件时犯了很多错误。在本文中,我将分享我多年来的经验,以帮助您避免同样的错误。

这个博客的顺序是根据我的错误的严重性来组织的,所以我首先提到了让人们浪费最多钱的错误。

GPU

假设您将使用GPU进行深度学习,或者您正在构建或升级系统以进行深度学习,那么将GPU放在后面是不合理的。 GPU是深度学习应用程序的核心 - 培训过程的速度非常快,不容忽视。

我有一个非常详细的介绍,如何在GPU推荐博客中选择GPU。如何选择GPU在深度学习系统中至关重要。选择GPU时,可能会犯这三个错误:(1)价格不高,(2)内存不够大,(3)散热性能差。

对于性价比,我通常建议使用RTX 2070或RTX 2080 Ti。使用这些图形卡时,应使用16位模型。此外,eBay的GTX 1070,GTX 1080和GTX 1080 Ti都是非常不错的选择。选择它们时,可以使用32位模型,但不能使用16位模型。

选择GPU时,请密切注意您的内存要求。在消耗相同内存的情况下,可以运行16位模型的RTX可以训练比GTX大两倍的模型。由于RTX具有内存优势,因此选择RTX并学习有效使用16位模型可以为您提供更好的体验。一般来说,内存要求如下:

对最高得分水平的研究:>=11 GB

探索有趣架构的研究:>=8 GB

其他研究:8 GB

Kaggle:4 C 8 GB

初学者:8 GB(但要注意检查应用程序区域的模型大小)

企业:8 GB用于原型,>=11 GB用于培训

当您购买多个RTX图形卡时,您需要注意散热问题。如果要将GPU固定在相邻的PCIe插槽中,则应确保使用带有鼓风机风扇的GPU。否则,您可能会遇到温度问题,并且您的GPU速度会降低(约30%)并且会更快耗尽。

74d4e4bcf95c6c53020ad699946ae5f9.jpeg

找时间!

您能否识别出因性能不佳而失败的硬件部分?是其中一个GPU吗?或者这可能是CPU的故障?

RAM

购买内存的最大错误是购买太高的内存。第二个错误是没有购买足够的内存,导致原型版本出现问题。

要求的频率

主要频率是一种营销方法,记忆公司会引诱你购买“更快”的记忆,事实上几乎没有任何性能提升。这段关于RAM的视频非常详细地解释了Linux上内存的技术诀窍:内存速度真的很重要吗?

此外,重要的是要知道存储器速度几乎与快速CPU RAM->无关。 GPU RAM传输。这是因为(1)如果您使用固定内存,那么您的小批量将直接转移到GPU而无需CPU干预,(2)如果您不使用固定内存,快速和慢速内存实现的性能差异是只有0-3% - 把钱花在别的地方!

内存大小

内存大小不会影响深度学习的性能。但是,它可能会阻止您轻松执行GPU代码(无需交换到磁盘)。你应该有足够的内存来与GPU愉快地工作。这意味着您至少应该具有与GPU匹配的内存大小。例如,如果你有一个24GB内存的Titan RTX,你应该至少有24GB的RAM。但是,如果您有多个GPU,则不需要更多内存。

“匹配内存中最大的GPU内存”的策略是,如果您处理大数据集,您仍然可能会耗尽内存。最好的方法是匹配你的GPU,如果你觉得内存不够,就买更多的内存。

另一种不同的策略受到心理学的影响:心理学告诉我们,注意力集中是一种随着时间推移而耗尽的资源。内存是少数可以让您浪费精力并专注于解决更难编程问题的硬件之一。如果你有更多的内存,你可以专注于更紧迫的事情,而不是浪费大量的时间在内存瓶颈上。拥有大量内存,您可以避免这些瓶颈,节省时间并提高效率以应对更紧急的问题。特别是在Kaggle比赛中,我发现额外的内存对于特征工程很有帮助。如果您有足够的资金和大量的预处理工作,添加额外的内存是一个很好的选择。根据这一策略,现在有必要考虑购买越来越多的可负担的内存,而不是以后考虑它。

CPU

人们经常犯的最大错误是花费太多时间来纠缠CPU的PCIe通道数。实际上,您不需要过多关注CPU PCIe通道的数量。相反,您应该关注CPU和主板组合是否可以支持您要运行的GPU数量。第二个最常见的错误是购买功能太强大的CPU。

CPU和PCI-Express(新一代总线接口)

许多人都对PCIe中的通道数量着迷。然而,问题的真相是PCIe(通道数)几乎不影响深度学习的表现。如果您只有一个GPU,则PCIe通道的唯一作用是能够将数据从CPU内存快速传输到GPU内存。但是,一批具有32个图像(数据集形状为32 * 225 * 225 * 3)和32位模型的ImageNet数据集在16通道PCIe上需要1.1毫秒,在8通道上需要2.3毫秒。 4个通道需要4.5毫秒。这些只是理论值,实际上你经常会发现PCIe的速度是理论速度的两倍 - 但它仍然像闪电一样快。 PCIe通道的延迟通常在纳秒范围内,因此可以忽略其延迟问题。

在考虑了这一点之后,我们提出了使用152层剩余网络训练一小批具有32个图像的ImageNet数据集所需的时间,如下所示:

前向和后向传播时间:216毫秒(ms)

使用16通道PCIe将数据从CPU内存转换为GPU内存。约为2ms(理论上为1.1ms)

使用8通道PCIe:将数据从CPU内存转换为GPU内存大约5ms(理论上为2.3ms)

使用4通道PCIe:将数据从CPU内存转换为GPU内存大约9ms(理论上为4.5ms)

因此,用16通道PCIe替换4通道PCIe将使您的训练性能提高3.2%。但是,如果您的pyTorch数据下载器包含CUDA页锁定内存,那么(更改PCIe通道)实际上可以使您的训练性能提高0%。所以如果你只使用1个GPU,不要在PCIe上浪费你的钱!

当您选择CPU的PCIe通道和主板的PCIe通道时(必须确保)所选的CPU和主板组合可以支持所需数量的GPU。如果您购买支持2个GPU的主板,并且您确实需要使用2个GPU,那么您需要确保您购买的CPU支持2个GPU,并且不需要纠缠PCIe通道的数量。

PCIe通道号和多GPU并行性

经验法则:不要花费额外的钱在每个GPU上获得更多PCIe - 这不是必需的!

所需的CPU核心

为了能够在CPU上做出明确的选择,我们首先需要了解CPU及其与深度学习的关系。 CPU为深度学习做了什么?在GPU上运行深层网络时,CPU只执行非常简单的操作。它主要主要是(1)启动GPU函数调用,(2)执行CPU函数。

目前,CPU的最大应用是数据预处理。两种常用的数据预处理策略具有不同的CPU要求。

一种策略是在培训期间进行预处理:

循环以下(三)步骤:

1.导入小批量数据

2.预处理小批量数据

3.培训小批量数据

第二个预处理策略是在训练之前执行预处理操作:

1.导入数据

2.循环以下(两个)步骤:

1.导入小批量数据

2.培训小批量数据

对于第一种策略,多核CPU可以显着提高培训性能。对于第二种策略,您不需要一个好的CPU。对于第一个培训策略,我建议每个GPU至少有4个线程 - 通常每个GPU两个核心。我没有对此进行过严格的测试,但每个额外的核心/GPU应该有额外的性能提升0-5%。

对于第二种策略,我建议每个GPU至少有2个线程 - 通常每个GPU一个核心。如果您使用第二种策略,那么更多的内核不会给您带来显着的性能提升。

所需的CPU频率(时钟频率)

当人们考虑(购买)快速CPU时,他们通常首先查看时钟频率。 4GHz CPU优于3.5GHz,是吗?这通常适用于具有相同结构的处理器,例如“Ivy Bridge微体系结构”,但对于不同体系结构的处理器而言,这不是一个很好的比较。此外,CPU时钟并不总是衡量性能的最佳方法。

在深度学习中,CPU只进行一些简单的计算:添加一些参数,评估布尔表达式,以及在GPU或程序中进行函数调用 - 所有这些都取决于CPU内核的时钟频率。

虽然这些理由看似合理,但是当我运行深度学习程序并发现CPU使用率为100%时,为什么呢?为了找到答案,我做了一些CPU下转换实验。

de64bf295d598c166ded0dcadc9e84f2.jpeg

MNIST和ImageNet数据集上的GPU下转换实验:不同CPU时钟频率的性能通过训练200个纪元MNIST数据集和50个纪元ImageNet数据集所花费的时间来衡量,其中最大时钟频率根据中央处理器。作为对比:从GTX 680到GTX Titan的性能升级约为15%;从GTX Titan到GTX 980,它的性能提高了20%; GPU超频可以为任何GPU带来5%的性能提升。

值得注意的是,这些实验是在过时的硬件设备上进行的,但是,对于现代CPU/GPU,结果保持不变。

硬盘/SSD

一般来说,硬盘不是深度学习的瓶颈。但是不要做这个愚蠢的事情:当你从一个100MB/s的硬盘驱动器中读取一小批32个ImageNet时,需要185毫秒。您可以在使用数据之前异步加载数据(例如割炬视觉加载器),因为加载数据需要185毫秒,ImageNet上运行的大多数DNN需要200毫秒才能计算。我们可以提前加载下一个小批量,以避免性能损失。

在生产力方面,我推荐使用SSD,因为程序启动速度更快,大文件更快。此外,NVMe SSD将为您带来更好的体验。

电源(PSU)

您必须确保您的电源符合所有预留GPU的电源要求。通常,GPU功耗会越来越低,因此无需更换电源。购买一个好的电源是一项有价值的业务。

在计算所需功率时,最好将所有CPU和GPU功耗的10%作为功率峰值的缓冲区。例如,如果您有四个250瓦的GPU和一个150瓦的CPU,那么我们至少需要4×250 + 150 + 100=1250瓦。通常我会添加至少10%以确保一切正常,因此在这种情况下总共需要1375瓦。最后我会买一个1400瓦的电源。

您必须注意,即使某些电源满足所需功率,它们也没有足够的8针或6针PCIe插槽接口。你更关注这个。

还尝试购买高功率电源 - 特别是如果您运行多个GPU并运行很长时间。

在满负荷下运行4GPU系统(1000-1500瓦)以训练卷积神经网络两周消耗300-500kWh。德国每千瓦时的价格为20点,因此将使用60-100欧元(66-111美元)。我们假设的功率效率是100%。如果您使用效率为80%的电源,则需要额外消耗18-26欧姆。使用单个GPU,将会少得多。但它不会影响焦点:值得在高效电源上花更多钱。

全天候使用一些GPU可以显着增加您的碳足迹,甚至超过您的流量(如飞机)和其他因素。如果您想要负责,您可以使用纽约大学机器学习语言组(ML2) - 这很容易做到且便宜,并且可以用作深度学习研究的标准。

CPU和GPU冷却系统

冷却非常重要,是整个系统的重要瓶颈。与糟糕的硬件选择相比,它更容易降低性能。对于CPU,您可以使用标准散热器或集成(AIO)水冷解决方案。但对于GPU,您需要特别注意。

风冷GPU

如果您有多个GPU并且它们之间有足够的空间(3-4个GPU中有两个GPU),则空气冷却是安全可靠的。当你想要冷却3-4个GPU时,你可能会犯一个大错误。此时您需要考虑这种情况下的选择。

运行算法时,现代GPU会将速度和功耗提高到最大值。一旦GPU达到温度阈值(通常为80°C),GPU将降低操作速度以防止温度降低。这样可以在保持GPU过热的同时实现最佳性能。

对于深度学习程序,典型的风扇速度预编程时间表设计不当。在开始深度学习计划后几秒钟内将达到温度阈值,结果性能将下降0-10%。当多个GPU相互加热时,性能更加明显(10%-25%)。

由于NVIDIA GPU在大多数情况下主要是游戏GPU,因此它们针对Windows进行了优化。在Windows中单击鼠标来更改风扇计划的方法在Linux中不起作用。但是,大多数深度学习库都是为Linux编写的。

如果你有一个Xorg服务器(Ubuntu),唯一的选择是用“coolbits”设置温度。这种方法适用于单个GPU。当有多个GPU时,其中一些没有监视器,并且模拟监视器来监视它们是一项艰巨的任务。我花了很长时间尝试使用实时启动CD恢复我的图形设置,但我从未在无监视器GPU上成功运行。

在风冷系统中运行3-4个GPU需要特别注意风扇设计。 “鼓风机”风扇设计允许冷空气进入GPU,然后从机箱背面吹出热空气。一个“非鼓风机”风扇吸入GPU附近的空气来冷却它。但如果它是多个GPU,那么它们周围就没有冷空气,使用“非鼓风机”风扇的GPU变得越来越热,最终通过降低性能来降温。我们应该不惜一切代价在3-4 GPU环境中使用“非鼓风机”风扇。

用于多GPU的水冷系统

另一种更昂贵且更昂贵的方式是使用水冷却系统。如果两个GPU之间只有一个GPU或足够的空间(例如3-4 GPU主板上的两个GPU),我建议不要使用水冷却系统。在4GPU配置中,水冷确保即使最强大的GPU保持冷却,这在空气冷却中是不可能的。水冷却的另一个优点是它可以安静地运行,这对于在公共区域运行多个GPU来说是一个巨大的优势。每个GPU安装水冷却需要100美元,而且还需要一些额外的前期成本(大约50美元)。水冷却的计算机也需要一些额外的工作,但不要担心,只需几个小时就会有详细的指导方针来指导您完成安装。维护工作不是那么复杂和费力。

冷却箱

大型塔式服务器在GPU位置有额外的风扇,所以我购买了它们用于深度学习集群。然后我发现它不值得,但只有2-5°C的下降,但投入很多。最重要的部分是直接在GPU上安装冷却系统,不需要为冷却系统购买昂贵的外壳。

冷却概要

对于GPU,风冷就足够了。如果你有多个GPU,你可以使用“爆炸”空气冷却系统,性能损失(10% - 件选择风冷或水冷。我建议使用空气冷却 - 使用“爆炸”GPU。如果要使用水冷却,请使用集成水冷(AIO)程序。

主板

您的主板上应该有足够的PCIe端口以支持您需要运行的GPU数量(即使您有更多PCIe插槽,但通常限制最多4个GPU);此外,请记住,大多数GPU将占用两个PCIe卡。插槽的宽度,因此如果您想使用多个GPU,请确保您购买的主板有足够的空间。主板不仅需要有足够的PCIe插槽位置,还需要支持您购买的GPU。在新蛋上,您可以查看有关相应主板和PCIe的信息。

电脑机箱

无法购买可以放弃全尺寸GPU的机箱。大多数底盘都很好,但检查尺寸规格,以确保你没有买一个小号;或者您可以尝试在谷歌图片中搜索它,看看里面是否有GPU的图片。

此外,如果您使用的是自定义水冷系统,请确保您的机箱有足够的空间放置散热器。因为每个GPU的散热器都需要一个单独的空间。

显示

起初,我认为写关于显示器是愚蠢的,但它们是不同的,所以我仍然要说些什么。

花在我的三台27英寸显示器上的钱是我最宝贵的投资。使用多台显示器时,生产率要高得多。只有一台显示器,我觉得完全无法做到。不要在这件事上妥协。如果你不工作,你有没有深度学习系统?

0cf8bc769fa8d2a98064aa8de3ec4434.jpeg

我一般把我的显示器放在上面:看看左边的纸,搜索谷歌,收集邮件,瞅瞅stackoverflow;在中间使用它来编写代码;把一些东西放在右侧,如输出界面辛辣,夹辣,系统,GPU监控辣,待办物品辣。

一些话后

由于硬件非常昂贵,很多人都害怕犯错误。当他们提到DIY电脑时,他们会恐慌。事实上,这是一件简单的事情,因为不匹配的部件不能组装在一起,对吧?主板手册,指南和在线视频也将教你如何组装这些东西。

组装自己的电脑的好处是你可以随时了解它,你永远不会忘记它。电脑,它们都不好,不用担心!

结论

GPU:来自eBay的RTX 2070,RTX 2080 Ti,GTX 1070,GTX 1080和GTX 1080 Ti是不错的选择。

CPU:每个GPU分配1-2个核心,具体取决于您处理数据的方式。频率> 2GHz的。 CPU应该能够支持您要运行的GPU数量。 PCIE通道并不重要。

RAM:

- 时钟频率并不重要 - 购买最便宜的内存

- 至少购买具有最大GPU内存大小的内存

- 仅在需要时购买更多内存

- 如果您经常处理大数据集,那么更多内存非常有用

硬盘/SSD:

- 用于存储数据的硬盘(>=3GB)

- 使用SSD快速处理小型数据集

电源

- 增加GPU和CPU所需的功率瓦数,并乘以总数的110%以获得所需的功率瓦数

- 如果使用多个GPU,请选择高效电源。

- 确保电源有足够的PCIE接口(6 + 8引脚)

冷却

- CPU:使用标准CPU冷却或集成水冷解决方案

- GPU:风扇冷却

- 如果您购买多个GPU,请使用“吹制”风扇

- 在Xorg配置中设置coolbits标志以控制风扇速度

主板

- 为(未来)GPU保留尽可能多的PCIe插槽(一个GPU需要两个插槽;每个系统最多4个GPU)

显示

- 额外的显示器可以提高效率而不是额外的GPU

英文原文:

想继续查看本文的链接和参考文献?

频道热点
  1. 每个月饼季节,总会有一场甜蜜而咸咸的战斗。甜蜜的代表包括广式双黄莲子,乌仁月饼,豆瓣月饼,逐渐流行的
  2. 一旦硬件像海一样深,你如何把所有的钱花在刀片上?深度学习的完整硬件指南作者:TimDettmers|译者:linlh?
  3.   【注:本文由〖娱乐之每一天〗作者独家原创作品,未经许可禁止复制。必须调查侵权行为!】最近,Angelb
  4.   希望大家看了我的文章后,不要扣什么“X黑”或者“X吹”的帽子。我的每一篇文章都会围绕一个核心观点展
  5.   21:43:59格格亲子共读 [大家好,欢迎点击右上角阅读,每天阅读育儿文本]简介:成为一名人民的老师可能
  6. ?  原创手机中国昨天我要分享  如今天的智能机器性能足以支持各种大型游戏。随之而来的是手机游戏的热潮。作为一种更方便的放松方式,手机游戏现在越来越被公众所接受。手机游戏竞争的蓬勃发展催生了很多手机游
  7. 当一个农村男孩在地上乱涂乱画时,他不小心挖了一堆白虫。年轻人感到震惊,并认为地上有害虫。结果,他认为
  8. 当一个农村男孩在地上乱涂乱画时,他不小心挖了一堆白虫。年轻人感到震惊,并认为地上有害虫。结果,他认为
  9.   装修设计达人2天前我要分享  最近,最热门城市的天气超过35度。许多家庭选择在家中安装空调以获得舒?
  10. ?  原创手机中国昨天我要分享  如今天的智能机器性能足以支持各种大型游戏。随之而来的是手机游戏的热潮。作为一种更方便的放松方式,手机游戏现在越来越被公众所接受。手机游戏竞争的蓬勃发展催生了很多手机游
新闻排行
  1. ?  原创手机中国昨天我要分享  如今天的智能机器性能足以支持各种大型游戏。随之而来的是手机游戏的热潮。作为一种更方便的放松方式,手机游戏现在越来越被公众所接受。手机游戏竞争的蓬勃发展催生了很多手机游

    ?  原创手机中国昨天我要分享  如今天的智能机器性能足以支持各种大型游戏。随之而来的是手机游戏的热潮。作为一种更方便的放松方式,手机游戏现在越来越被公众所接受。手机游戏竞争的蓬勃发展催生了很多手机游...

  2.   希望大家看了我的文章后,不要扣什么“X黑”或者“X吹”的帽子。我的每一篇文章都会围绕一个核心观点展

      希望大家看了我的文章后,不要扣什么“X黑”或者“X吹”的帽子。我的每一篇文章都会围绕一个核心观点展...

  3. [反腐风暴4]反腐败再次出现,暴风雨即将到来!导演:林德鲁编剧:黄浩华/何文龙主演:古天佑/郑嘉莹/林峰/林家

    [反腐风暴4]反腐败再次出现,暴风雨即将到来!导演:林德鲁编剧:黄浩华/何文龙主演:古天佑/郑嘉莹/林峰/林家...

  4. 2019-07-1122:12来源:成都商报客户天府邀请您成为“体验官员”,并鼓励您的意见。7月11日,成都天福通公司?

    2019-07-1122:12来源:成都商报客户天府邀请您成为“体验官员”,并鼓励您的意见。7月11日,成都天福通公司?...

  5.   [

      [...

  6. 7月27日,休斯敦火箭队为拉塞尔威斯布鲁克安排了一次媒体会议。在会上,魏邵表示下个赛季他会在没有球的情?

    7月27日,休斯敦火箭队为拉塞尔威斯布鲁克安排了一次媒体会议。在会上,魏邵表示下个赛季他会在没有球的情?...

  7. 当一个农村男孩在地上乱涂乱画时,他不小心挖了一堆白虫。年轻人感到震惊,并认为地上有害虫。结果,他认为

    当一个农村男孩在地上乱涂乱画时,他不小心挖了一堆白虫。年轻人感到震惊,并认为地上有害虫。结果,他认为...

  8. ...

  9.   21:47:11医疗在线  少林点穴位Acupoints在科学上很强大并且有许多技巧,通常受到武术的重视。此如《?

      21:47:11医疗在线  少林点穴位Acupoints在科学上很强大并且有许多技巧,通常受到武术的重视。此如《?...

  10. 在怀孕期间,每个准妈妈都希望有一个健康聪明的宝宝。然而,他们仍然患有一些繁琐的事情,包括饮食,行为等

    在怀孕期间,每个准妈妈都希望有一个健康聪明的宝宝。然而,他们仍然患有一些繁琐的事情,包括饮食,行为等...