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

从2017年开始,英伟达在Volta架构的显卡中加入Tensor Core张量核心。比如,Tesla V100有640个张量核心,是英伟达专门为人工智能打造的显卡之一。这些有了张量核心的芯片对深度学习行业发展有推动作用。

多GPU集群

推动机器学习训练发展的另外一个重大创新是多GPU集群。其实就是通过让多个GPU一起干活儿,大幅提高吞吐量。这在训练具有数十亿乃至数万亿参数的大模型时特别有用。

这种场景下,最有效的方法是使用NVLink和InfiniBand等网络技术来横向连接多个GPU。这些高速接口允许GPU绕开CPU这个中间商,直接交换数据,这能大幅提高数据交互的效率。

上图展示的是通过NVLink连接多个H100的示意图(图:英伟达)

NVLink是英伟达开发的高速互联技术,用于GPU与GPU,GPU与CPU之间连接的技术,为了提高连接的灵活性和复杂性,还开发了NVLink Switch系统,通过这套交换机系统,在一个集群里,用户可以最多连接256块显卡,获得超强的带宽。

当一个集群里有这么多显卡的时候,训练大型模型的时间就能大大缩短。尽管市场上也有很多同样专注于AI场景的显卡厂商,但英伟达是不折不扣的领导者。

GPU与CPU的对比

CPU通常是按顺序执行任务,遵循先进先出(FIFO)的原则。这意味着CPU处理任务是串行的,即一个任务完成后才开始下一个任务。由于CPU通常只用一个核心来执行一个接着一个的任务,所以它们更适合处理串行任务。

此外,CPU支持的指令种类比GPU多,能执行更多种类的任务,并且与计算机的更多组件如ROM(只读存储器)、RAM(随机存取存储器)、BIOS(基本输入输出系统)和输入/输出端口等进行交互。

GPU则主要进行并行处理,通过将任务分配给多个核心来处理任务。GPU可以看作是一种高级计算器:它只能接收有限的指令集,并且只能执行与图形和人工智能相关的任务,比如矩阵乘法。

在面对并行计算时,这实际上是一个优势,因为它允许有更多的核心专门用于这些操作,可以通过大量并行操作来提高任务执行的效率。

不难发现,一般的消费级显卡有几百到几千甚至上万个核心,这些核心可以快速并行执行简单的操作。而常见的消费级CPU则有2到16个核心,这些核心主要用来执行复杂的顺序操作。

简单来说,对于深度学习、机器学习负载,GPU更适合,因为它提供了更多的核心来更快地执行必要的计算。

常见的CPU是2到16核,而GPU的Core经常好几千(4090有16384个CUDA核心)

GPU的并行处理能力,主要是通过将更多的晶体管用于数据处理来实现的。与依赖于数据缓存和复杂流程控制的CPU不同,GPU的并行计算能力可以大幅降低数据访问延迟,提高计算效率。

CPU运行时,经常需要去缓存中找数据,如果缓存中没有,就得从内存中去找,这样就造成了延迟,会减慢程序的执行速度。

而GPU有许多核心来同时执行计算,当一部分核心在等待数据从内存中读取时,其他核心可以继续执行其他计算任务,这样就减少了总体延迟。

此外,GPU用的是显存,比如,GDDR5还有GDDR6,这些也都比CPU常用的DRAM,比如DDR3和DDR4要更快。

为什么GPU比CPU更适合做机器学习训练

深度学习任务通常需要在内存和处理核心之间传输大量数据,这就要求有一个高效的内存架构来支持这种高速数据传输。

显卡有一种特别优化的内存架构,能够提供比CPU更高的内存带宽。即使显卡的内存容量技术上与CPU相同或更少,它们仍能实现更高的数据传输速率。

GPU常使用高带宽内存(HBM),这种内存专为提供高速数据传输而设计。例如,一块只有32GB HBM的显卡可以达到极高的内存带宽,还有14 TFLOPS(每秒万亿次浮点运算)的计算能力。

相比之下,CPU即使有数百GB的内存,也只能提供很低的带宽和很低的计算能力。当然,为了解决这一问题,英特尔也推出了支持HBM内存的至强CPU MAX系列,这一产品主要用于高性能计算领域,而非通用计算领域。

考虑到显卡其实比较贵,对于一些轻度使用的用户,或者明确知道自己要用GPU做什么的时候,除了直接下手买,也可以考虑使用云上的GPU资源。

至少在机器学习场景,GPU经常是更合适的选择,要处理的规模越大,GPU的优势就越明显。

也有人会说,这些也都不一定。

有些AMD的处理器,比如AMD的EPYC 9004系列,在某些人工智能(AI)工作负载上比消费级GPU还要快。

某些算法优化可以使深度学习模型在CPU上训练得更好。例如,赖斯大学的工程学院开发了一种算法,使得CPU在某些AI任务上比GPU快15倍。

在深度学习模型的精度要求不高时,可以使用量化和量化感知训练技术来训练DL模型,将它们四舍五入为整数。CPU在处理整数时比GPU快,此时的速度会更快,但结果可能不那么精确。

不过,使用CPU进行深度学习训练仍是非主流的做法,大多数深度学习模型都是为并行计算设计的,就是面向GPU硬件而设计的。大部分人还是会直接选择GPU。返回搜狐,查看更多

联想ThinkPad重装系统全流程解析:新手必看详细步骤教学 FIFA Online3
top