完全硬件指南:教你 DIY 一套自己的深度学习机器

作者: 采集侠 分类: 科技 发布时间: 2019-01-21 15:15

编者按:在各大技术公司纷纷开源框架的背景下,人工智能日益成为普通开发者也能折腾的东西。当然,要想自己也能玩玩人工智能,你需要一套合适的硬件。如何才能搭建一套合适的人工智能,尤其是当今最火的深度学习的硬件呢?为了帮助大家避免一些硬件配置的坑,深度学习的资深玩家Tim Dettmers将自己的经验教训总结成了这篇深度学习的完全硬件指南,供各位玩家参考。

完全硬件指南:教你 DIY 一套自己的深度学习机器

深度学习是一项非常耗算力的工作,所以你得有一个带很多内核的CPU,对吧?或者买高速CPU也许是浪费?在开发深度学习系统的时候,你能够做的最糟糕的事情之一就是在不必要的硬件上浪费钱。以下我将一步步地引导你了解搭建一套廉价的高性能系统所需的硬件。

这些年来,我总共搭建了7台不同的深度学习工作站。虽然进行了精心的研究和论证,但我在选择硬件部件方面还是犯了不少错误。在本篇指南中,我希望分享一下我在这些年学到的经验,以便你不再犯我犯过的那些错误。

本文将按照错误的严重程度来排序。这意味着通常最浪费钱的错误排在前面。

GPU图形处理器

本文假设你使用GPU来做深度学习。如果你正在为深度学习搭建或者升级系统的话,省掉GPU是不明智的做法。GPU是深度学习应用的核心——它对处理速度的改进实在是太大了,容不得无视它的存在。

我之前在GPU推荐的博文中已经详细讨论过GPU的选择,挑选GPU大概是你做深度学习系统最关键的选择了。在选择GPU时你可能会犯额错误主要有3个:(1)糟糕的性价比,(2)内存不足,(3)冷却不好。

要想有好的性价比,我一般建议用RTX 2070或者 RTX 2080 Ti。如果你用这些板卡你得用16位的型号。否则的话,去eBay淘GTX 1070、GTX 1080、GTX 1070 Ti是不错的选择,这些GPU你可以用于32位(但不是16位)。

选择GPU的时候要当心内存需求。在内存相同的情况系,与GTX板卡相比,可以跑16位的RTX板卡能训练的模型规模可以是前者的2倍。而且此类RTX板卡还有内存优势,选择RTX板卡并学习如何有效地使用16位模型能带你走很远的路。一般而言,对内存的需求大概是这样的:

追求最高水准的研究:>=11 GB

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

任何其他研究:8 GB

Kaggle竞赛:4 – 8 GB

初创企业:8 GB(不过要根据特定应用领域情况来确定模型规模)

公司: 8GB用于原型开发, >=11 GB用于训练

冷却是要留意的另一个问题,尤其是如果你买多块RTX板卡的话。如果你想把GPU插在相互挨在一起的PCIe槽的话,你的确保自己的GPU有一块风力强劲的风扇。否则的话你可能就要遇到温度问题,然后你的GPU就会变慢(约30%)并且死得更快。

完全硬件指南:教你 DIY 一套自己的深度学习机器

排成一排的嫌疑犯

RAM

你认得出哪个硬件部件要对性能糟糕负责任吗?或者也许是CPU的错?RAM的主要错误是买时钟频率太高的RAM。第二个错误是买的RAM不足,没法获得流畅的原型体验。

所需的RAM时钟频率

RAM时钟频率是内存公司推销的噱头,引诱你买“更快”的RAM其实得到的性能好处寥寥。最好的解释可以看看Linus Tech Tips的视频《RAM速度真的重要吗?》

此外,重要的一点是要知道RAM速度对于更快的CPU RAM->GPU RAM传输来说并不相干。这是因为(1)如果你用的是固定内存,你的小批量(mini-batches)数据会在不需要CPU参与的情况下传输给GPU,以及(2)如果你不用固定内存,那么用高频内存和低频内存的性能差别大概在0-3%之间——所以还是把你的钱花在其他地方吧!

RAM大小

RAM大小并不影响深度学习的性能。然而,它有可能妨碍你舒服地执行你的GPU代码(不需要交换到硬盘去)。为了舒服地使用GPU,你应该要有足够的RAM。这意味着你至少应该有匹配最大GPU的RAM容量。比方说,如果你有一块代24GB内存的Titan RTX,那你至少应该有24 GB的RAM。然而,如果你的GPU不止一块的话,你不需要有更多的RAM。

“RAM匹配最大的GPU内存”这条策略的问题是,如果你处理的是大型数据集的话,你可能仍然会RAM不足。这里的最佳策略是匹配你的GPU,如果你觉得自己的RAM不足的话就多买点。

另一项策略则受心理影响:心理学告诉我们,专注是一种会随着时间流逝而减少的资源。RAM是你可以预留注意力资源给更困难的编程问题的少数硬件之一。如果你有更多RAM的话,就不需要花费大量时间去绕开RAM瓶颈,而是把你的注意力集中在更紧迫的事情上。RAM多的话你就可以避开那些瓶颈,节省时间并提高更迫切问题的生产力。尤其是在Kaggle竞赛上。我发现额外的RAM对于特征工程非常有用。所以如果你有钱并且要做大量的预处理的话,则额外的RAM也许是个好的选择。所以如果采取这项策略的话,你会想马上要更多的廉价RAM而不是等到后面。

CPU

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!