#头号周刊#

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(1)

在处理机器学习时,特别是在处理深度学习和神经网络时,最好使用显卡来处理,而不是CPU。在神经网络方面,即使是低端的GPU也会胜过CPU。

但是你应该买哪种GPU呢?有很多种选择,本文将尽量考虑各种相关因素,以便您可以根据您的预算和特定的建模要求做出合适的选择。

为什么 GPU 比 CPU 更适合机器学习?

CPU(中央处理器)是计算机的主力,重要的是它非常灵活。它可以处理来自各种程序和硬件的指令,而且处理速度非常快。为了在这种多任务环境中表现出色,CPU 具有少量灵活且快速地处理单元(也称为内核)。

GPU(图形处理器)更加专业,在多任务处理方面没有那么灵活。它旨在并行执行大量复杂的数学计算,从而提高吞吐量。这是通过拥有更多数量的更简单的核心来实现的,有时是数千个,这样就可以一次处理许多计算。

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(2)

并行执行多个计算的要求非常适合以下情况:

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(3)

张量处理单元 (TPU)

随着人工智能和机器/深度学习的蓬勃发展,现在甚至出现了更专门的处理核,称为张量核心。当执行张量/矩阵计算时,它们更快更有效。这正是机器/深度学习所涉及的数学类型所需要的。

尽管有专用的TPU,但一些最新的GPU也包括许多张量核心,您将在本文后面看到这一点。

Nvidia与AMD

答案肯定是:英伟达(Nvidia)

你可以使用AMD的GPU进行机器/深度学习,但Nvidia的GPU具有更高的兼容性,并且通常还可以更好地集成到TensorFlow和PyTorch等工具中。

如果尝试使用一个带有TensorFlow的AMD GPU需要使用额外的工具(ROCm),这往往有点繁琐,有时还只能使用不太最新的TensorFlow/PyTorch版本。

这种情况可能会在未来有所改善,但如果你想要一个好的体验,最好坚持使用Nvidia。

GPU特性

选择一个适合你预算的GPU,同时也能够完成你想要的机器学习任务,基本上归结为四个主要因素的平衡:

  1. GPU有多少RAM?
  2. GPU 有多少个CUDA或Tensor核心?
  3. 该卡使用什么芯片架构?
  4. 您的功耗要求是什么(如果有的话)?
显卡内存

答案是,越多越好!

这实际上取决于你机器学习模型是什么,以及这些模型有多大。例如,如果你正在处理图像、视频或音频,那么根据定义,你将处理大量的数据,而GPU RAM将是一个非常重要的考虑因素。当然也有办法解决内存不足的问题(例如调整batch size)。

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(4)

作为一般经验法则,我建议如下:

4GB:只要您不处理过于复杂的模型或大量图像、视频或音频,这在大多数情况下都可以很好地工作。如

8GB:您可以在不达到 RAM 限制的情况下完成大多数任务,但是对于包含图像、视频或音频的更复杂的模型,您会遇到问题。

12GB:我认为这是最佳的,您可以处理大多数较大的模型,包含处理图像、视频或音频的模型。

12GB :越多越好,您将能够处理更大的数据集和更大的batch sizes。然而,超过12GB则价格会很高。

一般来说,如果价格相同,最好选择内存更大、速度更慢的卡。记住,GPU的优势是高吞吐量,这在很大程度上依赖于可用的RAM来通过GPU提供数据。

CUDA核心和张量核心

实际上,应该首先考虑其他项,如RAM和芯片架构,然后再从选择中查看CUDA/张量核心数量最高的显卡。

对于机器/深度学习,张量核心比CUDA核心更好(更快、更有效)。这是因为它们是为机器/深度学习领域所需的计算而精确设计的。

事实上,CUDA核的速度已经足够快了。如果你能得到一张包含张量核心的卡片,这是一个很好的加分点,只是不要太纠结于它。

总结一下:

芯片架构

这实际上比你想象的更重要。正如我之前提到的,我们基本上已经抛弃了AMD,我们只能选择英伟达。

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(5)

最主要的是要注意芯片组的“Compute Capability(计算能力)”,有时被称为“CUDA generation”。这对每张卡都是固定的,所以一旦你买了这张卡,你就只能使用这张卡的计算能力了。

如果您的GPU具有 7.x (Turing) 或更高的计算能力,则可以使用混合精度训练。这基本上是 RTX 20 系列或更新版本,或者是服务器上的 RTX、“T”或“A”系列。

在考虑使用新显卡时,混合精度训练如此具有优势的主要原因是它降低了 RAM 使用率,因此通过使用稍新的显卡,您的 RAM 需求会降低。

如果您的RAM要求特别高,但没有足够的钱购买高端卡,那么您可能会在二手市场上选择较旧型号的GPU。

一个典型的例子是 Tesla K80,它有4992 个CUDA核心和24GB 的 RAM。它最初在 2014 年的零售价约为7000.00美元。目前也就3000RMB左右。

但是,有一个相当大的缺点。K80 的计算能力为 3.7 (Kepler),从 CUDA 11 起已弃用(当前的 CUDA 版本为 11)。这意味着该卡无法在未来版本的 CUDA 驱动程序中使用。

消费显卡与专业显卡

Nvidia基本上把他们的分成两部分。一种是消费类显卡,另一种是针对工作站/服务器的显卡(即专业显卡)。

这两个部分之间有明显的区别,但需要记住的是,在相同规格(RAM、CUDA核心、架构)下,消费显卡通常会更便宜,专业卡一般会有更好的质量和较低的功耗。

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(6)

对于高端专业卡,你会注意到它们有很多RAM(例如RTX A6000有48GB, A100有80GB),这是因为它们通常直接针对3D建模、渲染和机器学习/深度学习专业市场,这些市场需要大的RAM。

总而言之,普通学习可以选择消费类显卡,毕竟价格便宜也好购买。

推荐

请记住,如果你真的有很高的预算,你应该看看专业卡系列,比如 Nvidia A系列卡,它的成本可能高达数千美元。

低预算

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(7)

中等预算

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(8)

高预算

如何为机器学习选择最佳显卡(如何为机器学习选择最佳显卡)(9)

其他

如果你觉得买显卡不适合你,你可以使用GPU云服务器(腾讯、阿里等均提供)。

,