GPU选购指南:训练ML模型,我必须买RTX3080吗?(11)


用于模型并行化的、少于 128 个 GPU 的 GPU 集群:如果你可以为你的集群购买 RTX GPU:66% 的 8x RTX 3080 和 33% 的 8x RTX 3090(要确保能有效地冷却) 。如果解决不了 RTX 3090 的冷却问题,那么可以购买 33% 的 RTX 6000 GPU 或 8x Tesla A100 。如果不能购买 RTX GPU,那么我可能会选择 8x A100 Supermicro 节点或 8x RTX 6000 节点 。
用于模型并行化的、128 个 GPU 的 GPU 集群:考虑下 8x Tesla A100 设置 。如果你使用超过 512 个 GPU,那么你应该考虑配置一个 DGX A100 SuperPOD 系统,以匹配你的规模 。
正文开始这篇博文旨在让你对 GPU 和 NVIDIA 的 Ampere 系列 GPU 有不同层次的了解 。
(1)如果你对 GPU 如何工作、什么让 GPU 速度更快、NVIDIA RTX 30 Ampere 系列 GPU 有什么独特之处等问题的细节不感兴趣,那么你可以跳到性能及每美元性能图表和建议部分 。这些是这篇文章的核心和最有价值的内容 。
(2)如果你关心具体的问题,我在这篇博文最后一部分回答了最常见的问题,以消除一些误解 。
(3)如果你想深入了解 GPU 和张量核是如何工作的,最好是从头到尾阅读这篇文章 。根据你对相关主题的了解,你可以跳过一两个小节 。
我会在每个主要部分的开头加上一小段总结,希望可以帮助你决定是否要阅读这个部分 。
概 述这篇文章的结构如下 。
首先,我将解释是什么使 GPU 速度更快 。我将讨论 CPU 与 GPU、张量核、内存带宽、GPU 存储层次以及它们与深度学习性能的关系 。对于 GPU 可以提供什么,这些解释可能会帮助你得到一个更直观的认识 。
然后,我将对 GPU 的性能进行理论估计,并将其与 NVIDIA 的一些市场基准进行比较,以获得可靠的、无偏差的性能数据 。我将讨论新的 NVIDIA RTX 30 Ampere 系列 GPU 的独特特性,如果你购买 GPU,这些特性是值得考虑的 。
在此基础上,我提出了 1-2、4、8 GPU 设置和 GPU 集群的 GPU 建议 。之后是问答部分,我回答了 Twitter 上常见的问题;在这一节中,我还将讨论一些常见的误解和其他一些五花八门的问题,比如云与桌面对比、冷却方式、AMD 与 NVIDIA 对比等 。
GPU 如何工作?如果你经常使用 GPU,那么了解它们如何工作是很有用的 。这些知识有助于你理解为什么 GPU 在某些情况下速度慢而在其他情况下速度快 。然后,你可以更好地理解为什么你首先需要一个 GPU,以及其他未来的硬件选项可能会如何竞争 。如果你只是想要有用的性能数值和参数,以帮助你决定购买哪个 GPU,那么你可以跳过这一节 。对于 GPU 如何工作的问题,最好的高阶解释是我在 Quora 上的回答:

“为什么 GPU 适合深度学习”: https://timdettmers.com/Why-are-GPUs-well-suited-to-deep-learning?top_ans=21379913
这是一个高阶解释,很好地说明了为什么 GPU 比 CPU 更适合深度学习 。如果我们关注细节,就能理解是什么让一个 GPU 比另一个更好 。
与处理速度相关的最重要的 GPU 参数本节可以帮助你更直观地理解如何考虑深度学习的性能 。这种理解可以帮助你评估未来的 GPU 。
张量核要点:
  • 张量核将乘法和加法运算所需的 cycle 减少为 1/16——在我举的例子中,对于一个 32×32 的矩阵,从 128 个 cycle 减少到 8 个 cycle 。
  • 张量核减少了反复共享内存访问的次数,从而节省了额外的内存访问 cycle 。
  • 张量核速度如此之快,计算不再是瓶颈 。唯一的瓶颈是如何将数据传输到张量核中 。
现在 GPU 已经足够便宜,几乎每个人都能负担得起一个有张量核的 GPU 。这就是为什么我只推荐具有张量核的 GPU 。了解它们是如何工作的,有助于理解这些专门用于矩阵乘法的计算单元的重要性 。这里我将向你展示一个简单的例子:A*B=C 矩阵乘法,其中,所有矩阵的大小都是 32×32,我们将分别看下,计算模式在有和没有张量核时是什么样的 。
要完全理解这一点,就必须理解 cycle 的概念 。如果一个处理器以 1GHz 的速度运行,它每秒可以完成 10^9 个 cycle 。每个 cycle 都代表一次计算机会 。然而,大多数时候,操作所花费的时间会超过一个 cycle 。因此,它创建了一个管道,用于启动一个操作,它需要等待前一个操作完成所需的 cycle 数 。这也称为操作延迟 。
下面是一些重要操作的延迟: