2023 年最佳多 GPU 深度学习系统指南

news2024/11/27 23:47:29

动动发财的小手,点个赞吧!

alt

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

1. GPU

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

alt

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

  • 内存(显存)
  • 性能(张量核心、时钟速度)
  • 槽宽
  • 功耗(热设计功耗)

内存

对于当今的深度学习任务,我们需要大量的内存。大语言模型甚至需要进行微调,而且计算机视觉任务可能会占用大量内存,尤其是在使用 3D 网络时。当然,最重要的方面是 GPU 内存。对于大语言模型,我建议至少 24 GB 内存,对于计算机视觉任务,我不会低于 12 GB。

性能

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

alt

过去最关键的数字是电路中CUDA核心的数量。然而,随着深度学习的出现,NVIDIA 推出了专门的张量核心,可以在每个时钟执行更多的 FMA(融合乘加)运算。这些已经得到了主要深度学习框架的支持,并且是您在 2023 年应该寻找的。

下面是我经过大量手动工作后编译的按内存分组的 GPU 原始性能图表:

alt

请注意,在比较不同 GPU 的性能时必须格外小心。不同代/架构的张量核心不具有可比性。例如,A100 每个时钟执行 256 次 FP16 FMA 操作,而 V100“仅”64 次。此外,较旧的架构(Turing、Volta)不支持 32 位张量操作。

使比较变得更加困难的是,NVIDIA并不总是报告FMA,甚至在白皮书中也没有,并且相同架构的GPU可以有不同的FMA。另请注意,NVIDIA 经常宣传具有稀疏性的张量 FLOPS,这是一个仅在推理时可用的功能。

为了确定价格方面最好的 GPU,我使用 eBay API 收集了 eBay 价格,并计算了新卡每美元 (USD) 的相对性能:

alt

要选择最适合您预算的 GPU,您可以选择一款具有您能承受的最大内存的顶级 GPU。我的建议是:

alt

槽宽

在构建多 GPU 系统时,我们需要规划如何将 GPU 物理安装到 PC 机箱中。随着 GPU 变得越来越大,尤其是游戏系列,这变得更加成为一个问题。消费类主板拥有多达 7 个 PCIe 插槽,PC 机箱也是围绕此设置构建的。根据制造商的不同,4090 很容易占用 4 个插槽,因此您可以明白为什么这会成为一个问题。此外,我们应该在非鼓风机式或水冷式的 GPU 之间至少留出 1 个插槽,以避免过热。我们有以下选择:

  • 水冷

水冷型号最多需要 2 个插槽,但价格更昂贵。您也可以转换风冷 GPU,但这将使保修失效。如果您没有获得一体化 (AIO) 解决方案,您将需要构建自定义水冷回路。如果您想安装多个水冷 GPU,情况也是如此,因为 AIO 散热器可能不适合机箱。构建自己的循环是有风险的,我个人不会使用昂贵的卡来这样做。我只会直接从制造商那里购买 AIO 解决方案(规避风险)。

  • 风冷 2–3 插槽卡和 PCIe 转接卡

在此场景中,您将 PCIe 插槽上的卡与通过 PCIe 转接电缆连接的卡交错放置。 PCIe 转接卡可以放置在 PC 机箱内部或露天的某个位置。无论哪种情况,您都应该确保 GPU 受到保护(另请参阅有关 PC 机箱的部分)。

电源

现代 GPU 变得越来越耗电。例如,A 4090 需要 450 W,而 H100 最高可达 700 W。除了电费外,安装三个或更多 GPU 也成为一个问题。

如果您接近可以从 PSU/电源插座获取的最大功率,则此问题的解决方案是功率限制。降低 GPU 最大消耗功率所需要做的就是:

sudo nvidia-smi -i <GPU_index> -pl <power_limit>

where:
GPU_index: the index (number) of the card as it shown with nvidia-smi
power_limit: the power in W you want to use

事实证明,功率限制 10-20% 可使性能降低不到 5%,并使卡保持较低温度(Puget Systems 进行的实验)。例如,将四个 3090 的功率限制 20%,会将其功耗降低至 1120w,并且可以轻松安装在 1600w PSU/1800w 插座中(假设其余组件为 400w)。

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 个产品:

alt

上述列表中支持的 CPU 插槽为 LGA2011–3 和 LGA2066。然后我们进行 CPU 选择并选择具有所需核心数量的 CPU。这些主要用于数据加载和批量准备。目标是每个 GPU 至少有 2 个核心/4 个线程。对于 CPU,我们还应该检查它支持的 PCIe 通道。过去十年的任何 CPU 都应该支持至少 40 个通道(在 x8 通道上覆盖 4 个 GPU),但安全总比后悔好。通过过滤,例如具有上述插槽的 16 个以上核心,我们得到以下 CPU:

  • Intel Xeon E5 (LGA2011–3)
  • Intel Core i9 (LGA2066)

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

LGA2011–3 和 LGA2066 插槽都很旧(分别是 2014 年和 2017 年),。华擎 X99 WS-E 主板和 18 核 Intel Xeon E5–2697 V4 在二手状态下的成本不到 300 美元。不要购买更便宜的 ES 或 QS 版本的 CPU,因为这些是工程样本,可能会失败。

如果您想购买更强大的和/或更新的和/或 AMD CPU,您可以查看带有例如4 个以上 PCIe x16 插槽,但请确保检查插槽间距。

3. 内存

这里最重要的方面是 RAM 的数量。 RAM 用于深度学习周期的不同地方:从磁盘加载数据以进行批量创建、加载模型,当然还有原型设计。所需的数量在很大程度上取决于您的应用程序(例如,3D 图像数据将需要更多的额外 RAM),但您的目标应该是 GPU 的 VRAM 总量的 1 倍到 2 倍。类型至少应该是 DDR4,但 RAM 不是很重要,所以不要把钱花在那里️。

购买 RAM 时,您应该确保外形尺寸、类型、模块数量和每个模块的内存都符合您的主板规格。

4. 硬盘

另一个可以保存的组件是磁盘。同样,磁盘空间量很重要并且取决于应用程序。您不一定需要超快磁盘或 NVME,因为它们不会影响您的深度学习性能。无论如何,数据都会加载到 RAM 中,为了不造成瓶颈,您可以简单地使用更多并行 CPU 工作线程。

5. 电源

正如我们所见,GPU 是耗电组件。在设置多 GPU 系统时,PSU 的选择成为一个重要的考虑因素。大多数 PSU 可提供高达 1600w 的功率 — 这符合美国插座的功率限制。有一些 PSU 可以提供更多服务,但需要一些研究,而且它们特别针对矿工。

alt

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

一个重要的标准是标有 80 PLUS 等级的 PSU 效率。电源将达到其宣传的瓦数,但在此过程中会损失一些功率。 80 PLUS 铜牌电源的额定效率为 82%,与其他电源相比效率将达到 87% 的 Gold。如果我们有一个消耗 1600w 功率的系统,并且我们使用它的时间为 20%,那么假设成本为 0.16 美元/千瓦时,我们使用具有 Gold 评级的 GPU 每年可以节省 22 美元。

alt

当满负载运行时,某些 PSU 比其他 PSU 噪音更大,因为它们使用高转速的风扇。如果您在靠近箱子的地方工作(或睡觉!),这可能会产生一些影响,因此最好检查手册中的分贝。

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

6. 机箱

最后但并非最不重要的一点是,选择电脑机箱并非易事。 GPU 可能会变得巨大,而某些情况下可能无法容纳它们。例如 4090 的长度可达 36 厘米!

最重要的是,使用 PCIe 转接卡安装 GPU 可能需要一些技巧。有一些较新的机箱允许安装附加卡,特别是像 Phanteks Enthoo 719 这样的双系统机箱。另一个选择是 Lian-Li O11D EVO,它可以通过 Lian-Li 直立 GPU 支架将 GPU 放置在直立位置。我没有这些手机壳,所以我不确定它们是否适合,例如多个 3090 / 4090。但是,即使您的 PC 机箱不直接用 Lian-Li 支架支撑 GPU,您仍然可以直立安装 GPU。

alt

Reference

[1]

Source: https://towardsdatascience.com/how-to-build-a-multi-gpu-system-for-deep-learning-in-2023-e5bbb905d935

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1055849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flutter开发实战-webview插件flutter_inappwebview使用

flutter开发实战-webview插件flutter_inappwebview使用 在开发过程中&#xff0c;经常遇到需要使用WebView&#xff0c;Webview需要调用原生的插件来实现。常见的flutter的webview插件是webview_flutter&#xff0c;flutter_inappwebview。之前整理了一下webview_flutter&…

htb-cozyhosting

HTB-CozyHosting https://app.hackthebox.com/machines/CozyHosting ──(kwkl㉿kwkl)-[~] └─$ tail -l /etc/hosts …

凉鞋的 Unity 笔记 103. 检视器:GameObject 的微观编辑和查看

103. 检视器&#xff1a;GameObject 的微观编辑和查看 在上一篇&#xff0c;笔者简单介绍了场景层次 与 GameObject 的增删改查&#xff0c;如下所示&#xff1a; 在这一篇&#xff0c;我们接着往下学习。 我们知道在 场景层次 窗口&#xff0c;可以对 GameObject 进行增删改…

金融帝国实验室(CapLab)官方更新_V9.1.15版本(2023年第64次)

〖金融帝国实验室〗&#xff08;Capitalism Lab&#xff09;游戏更新记录&#xff08;2023年度&#xff09; ————————————— ◎游戏开发&#xff1a;Enlight Software Ltd.&#xff08;微启软件有限公司&#xff09; ◎官方网站&#xff1a;https://www.capitalis…

力扣-338.比特位计数

Idea 直接暴力做法&#xff1a;计算从0到n&#xff0c;每一位数的二进制中1的个数&#xff0c;遍历其二进制的每一位即可得到1的个数 AC Code class Solution { public:vector<int> countBits(int n) {vector<int> ans;ans.emplace_back(0);for(int i 1; i < …

洛谷P5732 【深基5.习7】杨辉三角题解

目录 题目【深基5.习7】杨辉三角题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1传送门 代码解释亲测 题目 【深基5.习7】杨辉三角 题目描述 给出 n ( n ≤ 20 ) n(n\le20) n(n≤20)&#xff0c;输出杨辉三角的前 n n n 行。 如果你不知道什么是杨辉三角&#xf…

基于SpringBoot的每日推购物推荐网站的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 商品信息管理 销售排行统计 商品类型管理 个人信息 商品 我的订单管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管…

Emacs之default-tab-width与tab-width用法总结(一百二十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

IO流之File类

File类 File 对应的硬盘上的文件或者文件夹 位于java.io包下 File对文件/文件夹进行操作&#xff0c;但是无法对文件内容进行操作&#xff0c;读取/写入不可以操作&#xff0c;但是可以创文件夹/读取文件路径,IO流才可以进行操作 文件/文件夹的路径&#xff1a;linux使用/作为文…

【剑指Offer】8.二叉树的下一个结点

题目 给定一个二叉树其中的一个结点&#xff0c;请找出中序遍历顺序的下一个结点并且返回。注意&#xff0c;树中的结点不仅包含左右子结点&#xff0c;同时包含指向父结点的next指针。下图为一棵有9个节点的二叉树。树中从父节点指向子节点的指针用实线表示&#xff0c;从子节…

SSM 中的拦截器(Interceptor):作用与实现原理

SSM 中的拦截器&#xff08;Interceptor&#xff09;&#xff1a;作用与实现原理 拦截器&#xff08;Interceptor&#xff09;是 Spring 框架中的一个重要组件&#xff0c;也在 Spring Spring MVC MyBatis&#xff08;SSM&#xff09;等框架中起到了关键作用。本文将深入探讨…

阿里云关系型数据库RDS详细说明

阿里云RDS关系型数据库大全&#xff0c;关系型数据库包括MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等&#xff0c;NoSQL数据库如Redis、Tair、Lindorm和MongoDB&#xff0c;阿里云百科分享阿里云RDS关系型数据库大全&#xff1a; 目录 阿里云RDS关系型数据库大全 …

基于Java的在线课程教程计划管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

已解决: Go Error: no Go files in /path/to/directory问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

我的第一个react.js 的router工程

react.js 开发的时候&#xff0c;都是针对一个页面的&#xff0c;多个页面就要用Router了&#xff0c;本文介绍我在vscode 下的第一个router 工程。 我在学习react.js 前端开发&#xff0c;学到router 路由的时候有点犯难了。经过1-2天的努力&#xff0c;终于完成了第一个工程…

【JUC并发编程--java线程】

文章目录 1. 线程1.1 线程的使用线程运行原理 1. 线程 1.1 线程的使用 方法一&#xff0c;直接使用 Thread&#xff1a; 方法二&#xff0c;使用 Runnable 配合 Thread&#xff1a; 把【线程】和【任务】&#xff08;要执行的代码&#xff09;分开 Thread 代表线程Runnabl…

mac系统占用内存太大怎么办?

Mac的内存大小有限&#xff0c;一旦运行软件太多&#xff0c;会导致Mac无法打开软件或者电脑卡顿&#xff0c;那么Mac系统占用内存过大怎么有效清理呢&#xff1f;本期小编就来帮大家看看当系统占用内存太大的时候应该怎么办 mac系统占用内存过大怎么清理 Mac的内存大小决定了…

网络工程师是安装摄像头的吗

大家好&#xff0c;我是网络工程师成长日记实验室的郑老师&#xff0c;您现在正在查看的是网络工程师成长日记专栏&#xff0c;记录网络工程师日常生活的点点滴滴 有个同学说他现在本科毕业去了一家公司&#xff0c;规模不大。他说只有14个人上社保的。这家公司主要是安装网络摄…

需求放缓、价格战升级、利润率持续恶化对小鹏汽车造成了严重影响

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 收入和每股收益不及预期&#xff0c;亏损创记录 财报显示&#xff0c;小鹏汽车&#xff08;XPEV&#xff09;2023年第二季度收入为50.6亿元人民币(合7亿美元)&#xff0c;略低于预期&#xff0c;而且还产生了比预期更大的亏…

EasyEdge 智能边缘控制台通过sdk发布应用

离线部署SDK生成 模型部署完成后会出现下载SDK的按钮&#xff0c;点击按钮下载SDK并保存好SDK。 进入EasyDL官网的技术文档 安装智能边缘控制台 跟着教程&#xff0c;完成安装&#xff1a;点此链接 树莓派4b是Linux arm64的架构&#xff0c;点击对应的链接进行下载。 下载完成…