Press "Enter" to skip to content

如何在2023年构建用于深度学习的多GPU系统

正在进行中的深度学习构建 :).

本文提供了一个指南,介绍了如何构建一个用于深度学习的多GPU系统,并希望能为您节省一些研究时间和实验。

目标

构建一个用于计算机视觉和LLMs模型训练的多GPU系统,同时不破产!🏦

步骤1. GPU

让我们从有趣(和昂贵 💸💸💸)的部分开始吧!

来自NVIDIA的H100野兽!

购买GPU时的主要考虑因素有:

  • 内存(VRAM)
  • 性能(张量核心,时钟速度)
  • 插槽宽度
  • 功耗(TDP)

内存

对于现在的深度学习任务,我们需要非常多的内存。即使是微调LLMs也需要巨大的内存,而计算机视觉任务尤其需要大量内存,特别是对于3D网络。自然而然,最重要的方面是GPU的VRAM。对于LLMs,我建议至少24 GB的内存,而对于计算机视觉任务,我不会选择低于12 GB。

性能

第二个标准是性能,可以用FLOPS(每秒浮点运算次数)来估计:

如何在2023年构建用于深度学习的多GPU系统 四海 第3张

过去的关键数字是电路中的CUDA核心数。然而,随着深度学习的出现,NVIDIA引入了专门的张量核心,可以在每个时钟周期内执行更多的FMA(融合乘加)操作。这些已经得到了主要的深度学习框架的支持,也是您在2023年应该考虑的因素。

下面是根据CUDA和张量核心(TFLOPs)对GPU的原始性能进行分组的图表,这是我在经过相当多的手工工作后编制的:

根据CUDA和张量核心(TFLOPs)的GPU原始性能。

请注意,在比较不同GPU的性能时,您必须特别小心。不同世代/架构的张量核心是无法比较的。例如,A100每个时钟周期执行256个FP16 FMA操作,而V100“只有”64个。此外,旧的架构(图灵,伏尔塔)不支持32位张量操作。使比较更加困难的是,NVIDIA并不总是在白皮书中报告FMA,甚至在相同架构的GPU中,FMAs可能不同。我在这个问题上一直很困惑 😵‍💫。还要注意,NVIDIA经常将张量FLOPS与稀疏性一起进行广告宣传,这是仅在推理时可用的特性。

为了确定性价比最高的GPU,我使用ebay API收集了ebay的价格,并计算了新卡的相对性能与美元(USD)的比值:

根据CUDA和张量核心(TFLOPs / USD)的GPU相对性能与美元(USD)的比值。价格基于当前ebay价格(2023年9月)

我对二手卡也做了同样的处理,但由于排名变化不大,我省略了绘图。

为了在预算范围内选择最佳的GPU,您可以选择您能负担得起的内存最大的顶级GPU之一。我的建议是:

基于当前ebay价格(2023年9月)的不同预算的GPU推荐。

如果您想深入了解更多技术方面,我建议阅读Tim Dettmers的关于选择适合深度学习的GPU的优秀指南。

插槽宽度

在构建多GPU系统时,我们需要计划如何将GPU物理安装到PC机箱中。由于GPU越来越大,尤其是游戏系列,这成为一个更大的问题。消费者主板最多有7个PCIe插槽,PC机箱是围绕这种设置构建的。根据制造商的不同,4090型号可能会占用4个插槽,所以您可以看到为什么这成为一个问题。此外,我们应该在不是吹风机式或水冷式的GPU之间留出至少1个插槽,以避免过热。我们有以下选择:

水冷水冷变体将占用2个插槽,但它们更昂贵。您也可以选择将空冷GPU改装为水冷,但这将使保修失效。如果您不选择一体机(AIO)解决方案,您将需要构建自定义水冷系统。如果您希望安装多个水冷GPU,同样需要自行构建水冷系统,因为AIO散热器可能无法适应机箱。自行构建水冷系统存在风险,对于昂贵的显卡,我个人不会这样做。我只会直接从制造商购买AIO解决方案(风险规避🙈)。

空冷2-3个插槽的显卡和PCIe延长线在这种情况下,您可以将显卡交错安装在PCIe插槽上,并使用PCIe延长线连接显卡。PCIe延长线可以放置在PC机箱内部的任何位置或者放在开放空气中。无论哪种情况,您都应该确保显卡安全固定(还请参阅有关PC机箱的部分)。

功耗(TDP)

现代GPU越来越耗电。例如,4090型号需要450瓦,而H100型号的最大功耗可达700瓦。除了电费,安装三个或更多个GPU也成为一个问题。这在美国尤其如此,因为电源插座可以提供高达1800瓦的电力。

如果您的PSU / 电源插座的最大功率接近极限,解决此问题的方法是进行功耗限制。您只需要减少GPU的最大功耗:

sudo nvidia-smi -i <GPU_index> -pl <power_limit>其中:GPU_index:卡的索引(数字),如nvidia-smi中显示的那样power_limit:您想要使用的功率,以瓦为单位

据Puget Systems的实验表明,将功耗限制在10-20%以下会导致性能下降不到5%,并且可以使显卡保持较低的温度。例如,将四个3090型号的功耗限制在20%以下将使其功耗降低到1120瓦,可以轻松适配1600瓦的PSU / 1800瓦的插座(假设其他组件的功耗为400瓦)。

第2步:选择主板和CPU

构建的下一步是选择一个允许多个GPU的主板。在这里,主要考虑因素是PCIe通道。对于每个卡,我们需要至少具有x8通道的PCIe 3.0插槽(请参阅Tim Dettmers的帖子)。PCIe 4.0或5.0较少见,对于大多数深度学习用例来说并不需要。

除了插槽类型,插槽之间的间距将决定您可以放置GPU的位置。确保您已经检查了间距,并且您的GPU实际上可以放置在您想要的位置。请注意,当您使用多个GPU时,大多数主板会在某些x16插槽上使用x8配置。获取此信息的唯一真实方法是查看显卡手册。

不花费数小时进行研究并且确保系统具有未来性的最简单方法是选择具有全程x16插槽的主板。您可以使用PCPartPicker并过滤具有7个或更多个PCIe x16插槽的主板。这给我们提供了21个产品供我们选择。然后,我们通过选择所需的最低RAM量(例如128 GB)和DDR4 / DDR5类型来缩小列表,使其减少到10个产品:

基于 PCPartPicker 的至少具有 7 个 PCIe x16 插槽和 128 GB DDR4/DDR5 RAM 的主板。

以上列表中支持的 CPU 插槽有 LGA2011–3 和 LGA2066。然后我们选择 CPU,选择具有所需核心数的 CPU。这些主要用于数据加载和批处理准备。每个 GPU 至少需要2 核 / 4 线程。对于 CPU,我们还应检查其支持的 PCIe 通道数。过去十年的任何 CPU 应至少支持 40 个通道(覆盖 4 个 GPU 的 x8 通道),但最好是安全第一。通过筛选带有上述插槽的 e.g. 16+ 核心,我们得到以下 CPU:

  • Intel Xeon E5(LGA2011–3):8 个结果
  • Intel Core i9(LGA2066):9 个结果

然后我们根据核心数、可用性和价格选择我们最喜欢的主板和 CPU 组合。

LGA2011–3 和 LGA2066 插槽非常旧(分别于 2014 年和 2017 年),因此您可以在 ebay 上找到这两种主板和 CPU 的好交易。一个 ASRock X99 WS-E 主板和一个 18 核 Intel Xeon E5–2697 V4 可以在二手条件下花费不到 300 美元。请不要购买更便宜的 ES 或 QS 版本的 CPU,因为它们是工程样本,可能会失败 ⚠️️。

如果您想购买更强大和/或更近期和/或 AMD CPU 的产品,可以选择具有 e.g. 4+ PCIe x16 插槽的主板,但请确保检查插槽间距。

在这个阶段,开始进行 PCPartPicker 构建是一个好主意。🛠️ PCPartPicker 将为您检查组件之间的兼容性,并简化您的生活。

第三步. RAM 🐏

在这里,最重要的方面是内存的数量。内存在深度学习周期的不同阶段都会被使用:从磁盘加载数据以进行批处理创建,加载模型以及原型设计。所需的数量在很大程度上取决于您的应用程序(例如,3D 图像数据将需要更多的额外内存),但您应该以您的 GPU 的总 VRAM 量的 1x–2x 为目标。类型至少应为 DDR4,但 RAM 时钟并不重要,所以不要在那里花钱 🕳️。

购买内存时,您应确保尺寸、类型、模块数量和每个模块的内存与您的主板规格相符(PCPartPicker 是您的朋友!)。

第四步. 硬盘

您可以节省的另一个组件是硬盘 😌。再次强调,磁盘空间的数量很重要,这取决于应用程序。您不一定需要超快的硬盘或 NVME,因为它们不会影响您的深度学习性能。数据将被加载到内存中,为了不产生瓶颈,您只需使用更多并行的 CPU 工作线程即可。

第五步. 电源供应(PSU)🔌

正如我们所见,GPU 是耗电量较大的组件。在设置多 GPU 系统时,选择适当的电源供应将变得很重要。大多数电源供应可以提供高达 1600w 的电力 – 这与美国插座的功率限制相符。有一些电源供应可以提供更多的功率,但需要进行一些研究,尤其是针对矿工。

PCPartPicker 为您的构建提供的预估功率。

要确定系统的功率,您可以再次使用 PCPartPicker 计算您的构建的总功率。为了安心,我们需要额外增加 10%+,因为 GPU 的功率峰值会超过其规格。

一个重要的标准是电源效率,用80 PLUS评级来表示。电源将达到其所宣传的功率,但在过程中会损失一些功率。80 PLUS青铜级的电源的效率为82%,而黄金级的电源的效率将达到87%。如果我们有一个每年使用20%时间的1600W系统,并且假设电费为0.16美元/千瓦时,使用一个黄金级评级的GPU,我们每年可以节省22美元。在比较价格时,请在您的计算中考虑这一点。

电源效率评级。来自techguided的表格

在全负荷运行时,某些电源比其他电源更嘈杂,因为它们使用高转速的风扇。如果您在靠近电脑主机的地方工作(或睡觉!),这可能会产生一些影响,因此建议您查看手册中的分贝数据 😵。

在选择电源时,我们需要验证它是否有足够的连接器来连接所有零部件。特别是GPU使用8(或6+2)针电缆。这里有一个重要的注意事项,对于GPU的每个电源插槽,我们应该使用单独的8针电缆,而不是使用同一电缆的多个输出(串联)。8针电缆的额定功率通常为约150W。当使用一个电缆为多个电源插槽供电时,GPU可能无法获得足够的电力而被限制。

第6步:PC机箱

最后但同样重要的是,选择PC机箱并非易事。GPU可以变得非常巨大,而一些机箱可能无法容纳它们。例如,4090可能达到36厘米的长度 👻!

此外,使用PCIe延长线安装GPU可能需要一些技巧。有一些新的机箱可以安装额外的显卡,特别是像Phanteks Enthoo 719这样的双系统机箱。另一个选择是Lian-Li O11D EVO,它可以使用Lian-Li Upright GPU Bracket将GPU安装在竖直位置。我没有这些机箱,所以不确定它们是否适合安装多个3090 / 4090。但是,即使您的PC机箱不直接支持,您仍然可以使用Lian-Li支架将GPU安装在竖直位置。您需要在机箱上钻2-3个孔,但并不复杂(请参考指南!)。

使用Lian Li竖直支架将Titan Xp安装在竖直位置

结束

希望您喜欢阅读本指南,并发现一些有用的提示。本指南旨在帮助您在构建多GPU系统时进行研究,而不是取代您的研究。如果对以上内容有任何疑问或评论,请随时向我发送。如果我在以上任何内容上有任何错误,我将非常感激您的评论或私信,以便改进它 🙏!

注意:除非另有说明,所有图片均为作者拍摄。我包含了一些联盟亚马逊链接。通过这些链接购买物品不会产生额外费用,而我可能会获得一小笔佣金。

Leave a Reply

Your email address will not be published. Required fields are marked *