为什么AI计算一定要用GPU?

随着ChatGPT大火,GPU成为了目前最热单品,一个顶级的GPU可以卖到数万美元 。由于对其产品的需求激增,英伟达(NVIDIA)的市场估值更是飙升至2万亿美元以上 。
你有没有好奇:为什么AI会带火GPU?AI计算一定要用GPU吗?

为什么AI计算一定要用GPU?

文章插图
今天我们就来一起聊一下GPU到底是什么?
▉ 什么是GPU,与CPU有何区别?
在GPU火之前,提到最多的就是CPU,那么二者有什么区别呢?CPU是不是会被GPU取代呢?
为什么AI计算一定要用GPU?

文章插图
下面我们来看下二者的具体区别:
CPU是Central Processing Unit的错写 , CPU通常被称为计算机的"大脑" , 主要来承担计算的处理功能,操作系统和应用程序运行等操作都必须依赖它来进行,CPU 还决定着计算机的整体速度 。
GPU是Graphics Processing Unit的缩写 , 其最初的设计是用于辅助3D渲染,能同时并行更多指令,其非常适合现在比较热门的动漫渲染、图像处理、人工智能等工作负载 。
简单来说,CPU是为延迟优化的,而GPU则是带宽优化的 。CPU更善于一次处理一项任务,而且GPU则可以同时处理多项任务 。就好比有些人善于按顺序一项项执行任务,有些人可同时进行多项任务 。
为演示 CPU 与 GPU 的不同 , 英伟达曾经邀请亚当·萨维奇 (Adam Savage) 和杰米·海尼曼 (Jamie Hyneman) 利用机器人技术和彩弹再现了一幅广为人知的艺术作品--蒙娜丽莎的微笑 。这个视频充分展示了CPU和GPU工作的过程 。如下面的视频:
了不起的云计算
 , 赞
60
可以通过打比方来通俗的解释二者的区别 。CPU就好比一辆跑车 , 而GPU则相当于一辆货车,二者的任务都是从A位置将100 Packages运送到B位置,CPU(跑车)可以在RAM中快速获取一些内存数据(货物),而GPU(货车)执行速度较慢(延迟更高) 。但是CPU(跑车)每次只能运送2 Packages,需要50次才能运送完成 。
为什么AI计算一定要用GPU?

文章插图
然而GPU(货车)则可以一次获取更多内存数据进行运输 。
为什么AI计算一定要用GPU?

文章插图
换句话说,CPU更倾向于快速处理少量数据(例如算术运算:5*6*7),GPU更擅长处理大量重复数据(例如矩阵运算:(A*B)*C) 。因此 , 虽然CPU单次运送的时间更快,但是在处理图像处理、动漫渲染、深度学习这些需要大量重复工作负载时,GPU优势就越显著 。
目前AI计算的数据类型跟图像处理,深度学习的类型更相似 , 这也是导致GPU供不应求的重要原因 。
那么是什么CPU和GPU有何不同呢?那还具体来看一下 。
▉ GPU和CPU有何不同?
首先是二者架构核心不同
通过下面两张图可以有助于我们理解CPU和GPU工作方式的不同 。上文中我们提到,CPU是为顺序的串行处理而设计的,GPU则是为数据的并行而设计的,GPU有成百上千个更小、更简单的内容 , 而CPU则是有几个大而复杂的内核 。
为什么AI计算一定要用GPU?

文章插图
GPU内核经过优化,可以同时对多个数据元素进行类似的简单处理操作 。而且CPU则针对顺序指令处理进行了优化,这也导致二者的核心处理能力的不同 。
网上有一个比喻用来比较 GPU 和 CPU 核心的区别,我觉得非常贴切,CPU的核心像学识渊博的教授,GPU的核心更像一堆小学生 , 只会简单的算数运算,可即使教授再神通广大,也不能一秒钟内计算出500次加减法,因此对简单重复的计算来说单单一个教授敌不过数量众多的小学生,在进行简单的算数运算这件事上,500个小学生(并发)可以轻而易举打败教授 。
其次是内存架构不同
除了计算差异之外,GPU还利用专门的高带宽内存架构将数据送到所有核心,目前GPU通常用的是GDDR或HBM内存,它们提供的带宽比CPU中的标准DDR 内存带宽的带宽更高 。
为什么AI计算一定要用GPU?

文章插图
GPU处理的数据被传输到这个专门的内存中 , 以最大限度地减少并行计算期间的访问延迟 。GPU的内存是分段的,因此可以执行来自不同内核的并发访问以获得最大吞吐量 。
相比之下,CPU内存系统对缓存数据的低延迟访问进行了高度优化 。对总带宽的重视程度较低 , 这会降低数据并行工作负载的效率 。


推荐阅读