Menu Close

CPU 和 GPU 到底有什么区别?为什么 AI 需要 GPU?

在计算机世界里,CPU 和 GPU 是两种非常重要的处理器。无论是个人电脑、服务器、智能手机,还是人工智能系统,都离不开它们。

CPU 负责执行程序、处理各种计算和控制任务,而 GPU 则擅长同时处理大量相似的计算任务。

随着人工智能的发展,GPU 的重要性越来越突出。过去,人们购买显卡主要是为了玩游戏、处理图像或制作视频。如今,GPU 已经成为人工智能训练、高性能计算和科学研究的重要硬件。

那么,CPU 和 GPU 到底有什么区别?为什么计算机已经有了 CPU,还需要 GPU?为什么人工智能训练通常使用 GPU,而不是只依靠 CPU?

要回答这些问题,我们需要从计算机处理器的基本工作原理说起。

CPU 和 GPU 到底有什么区别?为什么 AI 需要 GPU?

一、什么是 CPU?

CPU 是 Central Processing Unit 的缩写,中文叫中央处理器。它是计算机执行程序和处理通用计算任务的核心部件。

当我们打开浏览器、运行操作系统、执行 Python 程序或者启动一个应用软件时,CPU 都在参与工作。

CPU 的基本任务是读取程序指令、解释指令,并按照指令要求执行操作。

例如,进行加法运算、比较两个数字、读取内存数据、执行条件判断或者调用操作系统提供的功能。

从计算机体系结构来看,CPU 的基本工作过程通常可以概括为三个步骤:取指令(Fetch)、译码(Decode)和执行(Execute)。

首先,CPU 根据程序计数器等状态确定下一条指令的位置,并取得指令。

接着,CPU 对指令进行译码,确定需要执行什么操作。

最后,CPU 完成计算、数据访问或者控制转移等任务,并继续执行后续指令。

现代 CPU 的实际工作过程更加复杂,通常还涉及流水线、缓存、分支预测、乱序执行和多级内存系统等技术。这些技术的主要目的,是让 CPU 更高效地执行各种不同类型的程序。

CPU 最大的特点是通用性强。它不仅能处理数学计算,还能运行操作系统、管理应用程序、响应用户输入以及协调计算机中的其他硬件。

因此,CPU 并不只是一个计算器,而是一种能够高效处理复杂程序和多样化任务的通用处理器。

二、什么是 GPU?

GPU 是 Graphics Processing Unit 的缩写,中文叫图形处理器。

GPU 最初主要用于加速计算机图形处理,例如三维游戏、图像渲染、纹理处理和视频相关计算。

在三维游戏中,计算机需要处理大量顶点、像素、纹理和光照信息。屏幕上可能包含数百万个像素,许多图形计算可以同时进行。

如果完全依赖 CPU 执行这些重复性很高的计算,效率往往不够理想。于是,GPU 逐渐发展为一种能够并行处理大量数据的处理器。

所谓并行处理(Parallel Processing),就是让多个计算任务在同一段时间内同时进行,而不是让所有任务依次完成。

现代 GPU 不仅能够处理图形,还可以执行通用计算。这种技术通常称为 GPGPU,即 General-Purpose Computing on Graphics Processing Units,意思是利用 GPU 进行通用计算。

例如,科学计算、图像识别、人工智能训练和大规模矩阵运算,都可能使用 GPU 加速。

需要注意,GPU 并不是只能处理图像的硬件。现代 GPU 的重要价值,在于它能够高效执行大量适合并行计算的工作。

三、CPU 和 GPU 的核心区别是什么?

CPU 和 GPU 都能执行计算,但它们的设计目标不同。

CPU 主要面向通用计算,需要处理各种复杂任务,特别重视单个线程的执行效率、响应速度以及复杂控制逻辑的处理能力。

GPU 则更加重视并行吞吐量,也就是在单位时间内完成大量计算工作的能力。

可以通过一个简单的例子理解。

假设有一万张图片需要进行相同类型的处理,例如调整每个像素的亮度。如果使用 CPU,可以利用多个 CPU 核心进行并行计算,但 CPU 能同时执行的线程数量通常比较有限。

GPU 则可以让大量执行单元协同工作,使用成千上万个线程处理这些图片中的不同数据。对于适合 GPU 架构的算法,这种方式能够显著提高计算速度。

不过,这并不意味着 GPU 在所有情况下都比 CPU 快。

如果一个任务涉及大量复杂的条件判断、频繁变化的执行路径,或者各个步骤之间存在严格的先后依赖关系,CPU 往往更加合适。

例如,操作系统的任务调度、复杂业务逻辑处理、应用程序控制流程以及许多低延迟任务,通常主要依靠 CPU。

因此,可以用一句话概括两者的区别:CPU 擅长高效执行复杂而多样的任务,GPU 擅长并行完成大量相似的计算工作。

work Between CPU and GPU

四、CPU 核心和 GPU 核心有什么不同?

我们经常看到这样的产品介绍:某款 CPU 有 8 个、16 个甚至更多核心,而某款 GPU 则拥有数千个计算核心。

为什么 GPU 的核心数量会远远超过 CPU?

首先,需要理解 CPU 核心和 GPU 核心并不是完全相同的概念,不能直接根据核心数量判断性能。

现代 CPU 核心通常具有比较复杂的控制逻辑、较大的缓存资源以及针对低延迟执行设计的功能。

例如,分支预测和乱序执行可以帮助 CPU 更高效地处理不同指令之间的依赖关系。

GPU 的执行资源则采用不同的组织方式。以常见的 GPU 架构为例,大量算术执行单元被组织在多个计算单元或流式多处理器中,并通过硬件机制管理大量并行线程。

GPU 可以让许多线程执行相同或相近的操作,并通过切换就绪线程等方式隐藏部分内存访问延迟。

这使得 GPU 非常适合大规模数据并行计算。

但是,一个 GPU 计算核心并不等于一个完整的 CPU 核心。

GPU 厂商采用的核心命名方式也不同,例如 NVIDIA 使用 CUDA Core 等术语,而 AMD 和 Intel 的 GPU 采用各自的计算单元组织方式。

因此,不能简单地说,一块拥有数千个 GPU 核心的显卡,其计算能力就等于数千个 CPU 核心。

判断处理器性能,还需要考虑架构、时钟频率、指令类型、内存带宽、数据类型以及软件是否能够有效利用硬件。

五、什么是串行计算和并行计算?

理解 CPU 和 GPU 的另一个关键概念,是串行计算与并行计算。

串行计算(Serial Computing)是指计算任务按照一定顺序依次执行。例如,一个任务必须等待前一个任务完成,才能继续进行。

假设我们需要计算一组数字,每一步都依赖前一步的结果。这种情况下,即使拥有大量计算核心,也不一定能够将整个过程完全并行化。

并行计算(Parallel Computing)则允许多个相互独立的计算任务同时执行。

例如,我们需要把一百万个数字分别乘以二。每个数字的计算互不依赖,因此可以把数据划分成许多部分,分配给不同的执行单元同时计算。

这样的任务非常适合 GPU。

不过,现代 CPU 同样支持并行计算。多核心 CPU 可以运行多个线程,并且通过 SIMD 向量指令在一条指令中处理多个数据元素。

SIMD 是 Single Instruction, Multiple Data 的缩写,意思是单指令多数据。它能够让处理器使用一条指令,对多个数据元素执行相同的操作。

所以,CPU 和 GPU 的区别并不是 CPU 只能串行、GPU 才能并行,而是两者在并行规模、执行资源组织方式以及设计目标方面存在差异。

AI prefers GPUs

六、为什么 GPU 特别适合人工智能?

近年来,GPU 最重要的应用之一就是人工智能,尤其是深度学习和大语言模型。

要理解原因,首先需要认识矩阵(Matrix)。

矩阵可以理解为按照行和列排列的一组数字。例如,一张数字图像可以表示为像素数值构成的数组,而神经网络中的权重也经常组织成矩阵或更高维度的张量。

张量(Tensor)可以简单理解为多维数据数组,是深度学习中组织和处理数据的基本形式之一。

深度学习模型需要执行大量矩阵乘法、向量运算和其他数值计算。这些计算通常包含大量可以并行处理的操作。

例如,当神经网络计算一层神经元的输出时,可能需要完成非常多的乘法和加法操作。对于规模庞大的神经网络,这类计算会反复执行。

GPU 的并行计算能力恰好适合这种工作。

现代用于人工智能的 GPU 还可能包含专门的矩阵计算硬件,例如 NVIDIA 的 Tensor Cores。这些硬件能够在特定数据格式和计算条件下加速矩阵运算。

此外,GPU 通常具有较高的显存带宽,使其能够快速读取和处理大量数据。

这就是为什么深度学习训练大量采用 GPU 的重要原因。

但人工智能并不一定需要 GPU。

小型机器学习模型、简单的数据分析以及某些经过优化的 AI 推理任务,都可以在 CPU 上运行。一些设备还采用专门的 NPU 或其他 AI 加速器来提高计算效率。

GPU 是现代 AI 的重要计算平台,但不是唯一的选择。

七、为什么训练大语言模型需要大量 GPU?

大语言模型(Large Language Model,简称 LLM)是一类通过大规模数据训练、能够处理和生成语言内容的人工智能模型。

在训练过程中,模型需要不断处理训练数据,计算预测结果,评估误差,并调整内部参数。

模型的参数可以理解为训练过程中学习得到的数值。现代大语言模型可能包含数十亿甚至更多参数。

训练这些模型通常需要执行数量巨大的矩阵运算。

如果只使用普通 CPU,虽然在技术上可以完成某些训练任务,但对于大规模模型而言,训练速度和总体效率通常难以满足实际需求。

GPU 能够通过大规模并行计算显著加快这些数学运算。多块 GPU 还可以协同工作,将模型或训练数据分配到不同设备上。

不过,多 GPU 训练并不只是把显卡数量增加就可以了。不同 GPU 之间还需要交换数据、同步计算结果,并通过高速互连技术协调工作。

在大型 AI 数据中心中,GPU、CPU、内存、网络和存储系统共同组成完整的计算基础设施。

CPU 负责许多控制和系统管理任务,GPU 负责大量计算密集型工作,而高速网络负责连接不同的计算设备。

因此,一台 AI 服务器通常既需要 CPU,也需要 GPU,两者并不是互相替代的关系。

八、GPU 为什么需要显存?

CPU 和 GPU 都需要访问内存,但典型的独立显卡通常配备自己的专用内存,称为显存(Video Memory),常见缩写是 VRAM。

CPU 主要访问系统内存,也就是通常所说的 RAM。独立 GPU 则通常通过自己的显存存储图形数据、计算数据以及正在处理的模型参数和中间结果。

在人工智能应用中,GPU 显存尤其重要。

例如,运行一个大语言模型时,除了存储模型权重,还可能需要存储运行过程中产生的中间数据、KV Cache 以及其他计算工作区。

KV Cache 是 Key-Value Cache 的缩写,是 Transformer 模型推理中用于保存部分已有注意力计算信息的缓存,能够减少生成后续内容时的重复计算。

如果模型及其运行所需的数据超过可用显存容量,就可能需要采用量化、分层卸载或者多 GPU 分布式运行等技术。

这里的量化(Quantization)是指使用更低精度的数据格式表示模型参数或进行部分计算,从而减少内存占用,并可能提高执行效率。

不过,显存容量并不等于计算性能。显存越大,通常意味着能够容纳更多数据或更大的模型,但模型运行速度还受到 GPU 计算能力、内存带宽和软件优化等因素影响。

另外,并不是所有 GPU 都具有独立显存。有些集成 GPU 与 CPU 共享系统内存,部分现代处理器还采用统一内存架构。

所以,判断一台计算机能否运行某个 AI 模型,需要综合考虑内存容量、内存带宽、计算性能和软件支持。

九、CPU 和 GPU 的内存访问方式有什么区别?

除了计算核心,两者在内存系统设计方面也存在明显差异。

CPU 通常通过多级缓存提高数据访问效率。常见的缓存包括 L1、L2 和 L3 Cache。Cache 的中文名称是高速缓存,用来保存近期使用或者预计即将使用的数据,减少访问较慢内存的次数。

现代 GPU 同样拥有缓存系统,但它的内存层次结构和数据访问优化方式与 CPU 不完全相同。

GPU 常常需要在短时间内读取大量计算数据,因此内存带宽非常重要。

内存带宽(Memory Bandwidth)表示内存系统在单位时间内能够传输多少数据,通常使用 GB/s 或 TB/s 表示。

在大型矩阵计算、图形渲染和科学计算中,如果处理器需要的数据无法及时送达计算单元,再强的计算能力也可能无法充分发挥。

但是,带宽高并不代表每次内存访问的延迟都低。GPU 主要通过大量并行工作和合理安排线程来提高整体吞吐量,而 CPU 则通常更加重视复杂程序的低延迟执行。

这也是为什么比较 CPU 和 GPU 时,不能只看主频或者核心数量。

十、玩游戏时,CPU 和 GPU 分别负责什么?

电脑游戏是理解 CPU 和 GPU 分工的一个典型例子。

运行游戏时,CPU 通常负责处理游戏逻辑、角色行为、部分物理计算、输入响应以及向图形系统提交渲染任务。

GPU 则主要负责执行图形渲染工作,例如处理几何数据、纹理、像素着色以及部分光照和光线追踪计算。

例如,在一款三维游戏中,CPU 会参与确定角色移动、碰撞检测、游戏规则和场景状态,而 GPU 则根据需要绘制的场景生成最终图像。

当然,现代游戏引擎也可以使用 GPU 执行部分物理模拟和其他通用计算,因此两者的分工并不是绝对固定的。

如果 CPU 无法及时完成游戏逻辑和渲染任务准备工作,GPU 即使还有空闲计算资源,也可能无法进一步提高帧率。这通常称为 CPU 瓶颈。

反过来,如果游戏画面非常复杂,GPU 无法及时完成图形渲染,游戏性能就可能受到 GPU 限制。

因此,游戏性能取决于整个系统,而不是单独一块处理器。

十一、CPU 和 GPU 能互相替代吗?

从计算能力来看,CPU 和 GPU 存在一定重叠。CPU 可以执行图像处理和机器学习任务,GPU 也能执行大量非图形计算。

但两者通常不能简单互相替代。

CPU 具有完整的通用程序执行能力,能够运行操作系统,并处理各种系统级任务。

GPU 通常作为受主机软件或系统控制的计算设备运行。它的硬件和编程模型主要针对高吞吐量计算进行设计。

如果让 GPU 执行大量不规则控制流程、频繁分支判断或者难以并行的任务,可能无法充分发挥其优势。

另一方面,如果使用 CPU 执行规模特别庞大的并行矩阵运算,虽然能够完成计算,但在适合 GPU 加速的工作负载中,效率往往不如专门优化的 GPU。

因此,更合理的方式是让 CPU 和 GPU 各自完成擅长的工作。

这种协同模式被称为异构计算(Heterogeneous Computing),意思是使用不同类型的处理器共同完成计算任务。

在现代计算机中,CPU、GPU、NPU 以及其他专用加速器共同工作的情况越来越常见。

十二、CPU、GPU 和 NPU 有什么关系?

在介绍 CPU 和 GPU 时,还需要了解另一种越来越常见的处理器:NPU。

NPU 是 Neural Processing Unit 的缩写,中文通常称为神经网络处理单元。

NPU 是一种针对神经网络运算优化的处理器,常用于智能手机、个人电脑、嵌入式设备以及其他 AI 系统。

CPU 具有很强的通用性,能够处理复杂程序逻辑。

GPU 擅长大规模并行计算,既可以执行图形任务,也可以加速 AI 和科学计算。

NPU 则通常针对特定神经网络计算进行硬件优化,并可能特别重视能耗效率。

例如,在某些智能手机中,NPU 可以用于图像增强、语音识别或者其他本地 AI 功能。

在个人电脑中,NPU 可以帮助加速部分受到软件支持的 AI 功能,减少某些任务对 CPU 或 GPU 的依赖。

不过,不同厂商的 NPU 架构差异较大,其功能、性能以及支持的模型也不相同。

不能简单认为 NPU 一定比 GPU 更快,或者 GPU 一定比 NPU 更适合 AI。真正的性能取决于具体工作负载、数据精度、软件框架和硬件架构。

十三、编写程序时,怎样使用 GPU?

普通程序通常从 CPU 开始执行。例如,使用 C、C++ 或 Python 编写一个程序时,程序中的常规代码主要由 CPU 执行。

如果程序需要 GPU 加速,开发者通常需要使用相应的编程接口、计算框架或者支持 GPU 的软件库。

例如,NVIDIA 提供 CUDA 编程平台,让开发者能够编写在兼容 NVIDIA GPU 上执行的计算程序。

其他 GPU 计算技术还包括 OpenCL、SYCL、HIP 以及不同厂商提供的计算接口和工具链。

在人工智能领域,PyTorch 和 TensorFlow 等深度学习框架可以利用受到支持的 GPU 后端进行计算。

开发者不一定需要直接编写底层 GPU 内核,就能够调用已经优化的 GPU 计算库。

但是,将程序放到 GPU 上运行,并不意味着一定能够加速。

如果任务规模很小,或者 CPU 与 GPU 之间需要频繁传输大量数据,额外的调度和数据传输开销可能抵消 GPU 的计算优势。

要充分发挥 GPU 的性能,通常需要选择合适的算法,增加能够同时执行的工作量,并合理安排数据存储与传输。

因此,GPU 加速不仅是硬件问题,也是软件设计和算法优化问题。

十四、未来 CPU 会被 GPU 取代吗?

随着人工智能的发展,GPU 在数据中心中的地位迅速提升。这使一些人产生疑问:既然 GPU 能够提供强大的计算能力,未来是否还需要 CPU?

答案是,CPU 在可预见的计算系统中仍然具有重要作用。

现代计算机需要运行操作系统、管理进程、处理网络通信、协调存储设备以及执行各种通用程序。这些任务通常需要 CPU 提供的灵活控制能力和高效的通用指令执行能力。

GPU 虽然在大规模并行计算中具有优势,但并不适合承担所有类型的计算任务。

未来的计算系统更可能继续朝着异构计算方向发展,而不是由某一种处理器完全替代其他处理器。

例如,一台 AI 服务器可能同时包含高性能 CPU、多块 GPU、高速网络适配器以及专门的数据处理加速器。不同硬件通过软件和系统架构协同工作,共同提高整体效率。

另外,CPU 和 GPU 的技术也在不断相互借鉴。CPU 增强向量计算能力,GPU 改善控制和内存访问机制,许多处理器还将不同计算单元集成到同一芯片或封装中。

这意味着 CPU 和 GPU 的边界可能在某些应用中变得更加模糊,但它们的设计取舍仍然有实际意义。

十五、总结:CPU 和 GPU 到底应该怎样理解?

CPU 和 GPU 都是现代计算机的重要处理器,但它们的设计目标不同。

CPU 强调通用性、复杂控制能力以及单个线程的执行效率,适合操作系统、应用程序和各种不规则计算任务。

GPU 强调并行计算能力和整体吞吐量,适合图形渲染、矩阵运算、科学计算以及许多人工智能工作负载。

CPU 不只能进行串行计算,GPU 也不只是用来处理图形。两者都具备并行计算能力,只是在硬件架构、执行方式和优化目标上存在差异。

GPU 拥有大量计算单元,但 GPU 核心和 CPU 核心不能简单进行数量比较。GPU 的实际性能还取决于内存带宽、数据精度、工作负载以及软件优化。

在人工智能领域,GPU 之所以重要,是因为深度学习需要进行大量可以并行执行的矩阵和张量运算。但 CPU、NPU 和其他专用加速器也有各自的应用场景。

理解 CPU 和 GPU 的区别,不只是为了选择电脑硬件,更是理解现代计算机体系结构、并行计算和人工智能基础设施的重要一步。

一句话记住:CPU 擅长处理复杂而多样的任务,GPU 擅长同时完成大量相似的计算。现代计算机需要的不是二选一,而是让不同处理器协同工作。

Posted in 芯片基础知识