GPU与CPU的区别

OpenAI公司的ChatGPT在短短一个月内快速风靡全球,人工智能的快速发展,离不开高性能、高算力的硬件支持。

如果以英伟达A100 GPU的处理能力计算,运行ChatGPT将需要使用到30000块英伟达GPU。随着OpenAI继续在商业上部署ChatGPT和该公司的生成式GPT模型,可能需要超过30000块GPU。英伟达可从OpenAI赚取3亿美元。

GPU和CPU的概念

GPU(Graphics Processing Unit-图形处理器),是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。

CPU(Central Processing Unit-中央处理器),是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

  • CPU是一个具有多种功能的优秀领导者,它的有点在于调度、管理、协调能力强。但是计算能力一般。
  • GPU相对于一个接受CPU调度的“拥有大量计算能力”的员工。

GPU和CPU的区别

缓存

CPU有大量的缓存结构,目前主流的CPU芯片上都有四级缓存,这些缓存结构消耗了大量的晶体管,在运行的时候需要大量的电力。

GPU的缓存就很简单,目前主流的GPU芯片最多有两层缓存,而且GPU可以利用晶体管上的空间和能耗做成ALU单元,因此GPU比CPU的效率要高一些。

响应方式

CPU要求的是实时响应,对单任务的速度要求很高,所以就要用很多层缓存的办法来保证单任务的速度。

GPU是把所有的任务都排好,然后再批处理,对缓存的要求相对很低。

计算量比较

CPU:计算量小,原理:只有4个运算单元

GPU:计算量大,原理:有1000个运算单元

计算复杂度比较

CPU:可计算复杂的运算,比如积分微分,4个运算单元都属于专家级别

GPU:只可以计算简单的1+1算术题,不能计算复杂的微分积分,1000个运算单元属于小学生水平。

对于单个积分微分的计算速度比较

CPU:较快。原理:单线程计算(比如机器人运动控制),单个芯片性能强劲,计算能力强,能计算出来

GPU:较慢,甚至可能计算不了;原理:单个芯片性能弱,计算能力弱,可能算不出来,或速度很慢

对于多个1+1算术题的计算速度比较

CPU:速度较慢。因为计算原理是:先算第1题, 再算第2题,总时间为【T1+T2+T3>>>+T1000(也就是1000个算术题消耗时间的累加])】

GPU:速度很快。因为计算原理是:可同时计算1000道算术题,总时间为【max(T1,T2,T3…T1000)(也就是1000个算术题消耗时间中的最大值)】

形象比喻

GPU:计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。

CPU:像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。

浮点运算方式

CPU除了负责浮点整形运算外,还有很多其他的指令集的负载,比如像多媒体解码,硬件解码等,因此CPU是多才多艺的。CPU注重的是单线程的性能,要保证指令流不中断,需要消耗更多的晶体管和能耗用在控制部分,于是CPU分配在浮点计算的功耗就会变少。

GPU基本上只做浮点运算的,设计结构简单,也就可以做的更快。GPU注重的是吞吐量,单指令能驱动更多的计算,相比较GPU消耗在控制部分的能耗就比较少,因此可以把电省下来的资源给浮点计算使用。

应用方向

CPU所擅长的像操作系统这一类应用,需要快速响应实时信息,需要针对延迟优化,所以晶体管数量和能耗都需要用在分支预测、乱序执行、低延迟缓存等控制部分。

GPU适合对于具有极高的可预测性和大量相似的运算以及高延迟、高吞吐的架构运算。

CPU主要是解释计算机指令以及处理计算机软件中的数据,相当于是一台计算机的“大脑”,而GPU是一个专门的图形核心处理器,是显示卡的“大脑”,决定显卡的档次和大部分性能。

尽管有类似的首字母缩略词,但 CPU 和 GPU 却截然不同。CPU 和 GPU 之间的最大区别在于 CPU 在任何计算系统中扮演的核心角色。中央处理单元或 CPU 是数据在硬件系统中通过的基本逻辑电路。CPU 通常被称为处理器或“芯片”,是电子系统的核心。通过 CPU 的电通道确定输入 – 输出活动。

相比之下,图形处理单元或 GPU 是专门用于图像和视频显示的专用类型的电子电路。GPU 用于增强帧缓冲器的使用,以用于计算机,移动电话和游戏控制台等设备中的显示目的。图形处理单元可以作为插槽卡组件安装,或者驻留在设备主板上。

这两种类型的电路都处理数据。但是其中只有一个对所有计算系统都至关重要。随着企业系统和其他硬件架构从硬件定义的驻留模型转变为基于云计算和网络虚拟化的模型,CPU 或 CPU 资源的使用已经变得非常抽象。在虚拟化系统中,CPU 是资源分配而不是特定硬件中的实际物理处理器。

除了传统的 CPU 和 GPU 之外,工程师们还开始使用称为通用计算的 GPU 进程,这不仅涉及使用 GPU,而且还包括通常由 CPU 处理的其他计算和任务。这种类型的并行处理有助于在现代硬件中促进不同类型的高功率结果,并且已经变得流行于计算机和移动设备平台。