GPU:创造 AI 的设备与它的并行之美

这是一份关于 GPU(图形处理单元) 架构、它与 CPU(中央处理单元) 的区别,以及它为何成为 AI 和加密货币 计算核心的文档,内容来源于 https://www.youtube.com/watch?v=58jtf24uijw。


💻 GPU:创造 AI 的设备与它的并行之美

简介:GPU 的核心作用

GPU(Graphical Processing Units,图形处理单元)与 CPU(Central Processing Units,中央处理单元)是现代计算机的核心。

您可能已经知道 GPU 的用途,但为什么它如此强大?

  • 共同点: 比特币挖矿和训练像 ChatGPT 这样的 AI 模型,都依赖于 GPU
  • 核心差异: CPU 旨在最小化执行延迟,擅长通用计算;而 GPU 旨在最大化执行吞吐量,擅长重复的数学计算。

🧠 CPU 的工作方式:顺序执行

CPU 被称为计算机的通用“大脑”。它执行算术、控制和逻辑程序,这些程序由程序员编写的代码编译而来。

  • 工作流程: 一个单核 CPU 顺序地执行指令:
    1. 获取(Fetches)指令。
    2. 解码(Decodes)指令。
    3. 执行(Executes)指令。
    4. 将结果存储(Stores)在寄存器中。
    5. 重复循环。
  • 特性: CPU 采用顺序执行(sequentially),对于单个核心处理器而言,没有并行计算的概念,旨在尽快完成单个任务。

⚡ GPU 的强大:数据级并行

与 CPU 不同,GPU 的设计目标是让尽可能多的数据快速通过执行阶段,即最大化吞吐量(maximising throughput)。

数据级并行 (Data-Level Parallelism)

GPU 的核心优势在于数据级并行

  • 同时执行: 在 GPU 核心的任何时间点,多个执行单元都在对多个输入执行相同的指令
  • Warp(线程束): 一组执行相同指令的线程被称为一个 Warp(线程束)。为了效率,GPU 核心会预先准备多个 Warp 并按批次执行。

示例:向量操作(DAXPY 循环)

对于 \(Z[i] = A \cdot X[i] + Y[i]\) 这样的向量加权相加循环(称为 DAXPY 循环),GPU 的优势非常明显:

特性 CPU (单核) GPU (4 线程/Warp)
执行方式 必须顺序执行 1024 次,逐一处理每个索引。 4 个线程并行执行指令,同时访问 4 个索引。
效率 高,只需重复 256 次即可处理全部 1024 个索引。

适用场景

GPU 擅长对大量数据执行相同指令的重复性工作负载:

  1. 比特币挖矿: 涉及哈希值的暴力计算,需要一遍又一遍地重复调用相同的数学运算。
  2. AI 模型训练: 涉及对大量训练数据重复进行矩阵运算

🔄 处理分支与延迟

条件分支 (If/Else)

GPU 即使在处理条件分支(如 if/else 语句)时也保持并行性:

  • 谓词寄存器 (Predicate Registers): 每个线程都使用一个谓词寄存器(本质上是一个布尔标志 TrueFalse)来保存条件。
  • 执行与空闲:
    • 如果线程的谓词为 True,则执行指令。
    • 如果为 False,则该线程对该指令保持空闲(idle)。
  • 局限性: 这种方法最适合简单的单级 if-then-else 语句。更复杂的嵌套分支需要使用特殊的硬件和指令。

避免停滞 (Stalling)

由于所有线程在一个 Warp 中是同步执行(lockstep)的,如果其中一个线程因等待慢速操作(如内存读取)而停滞(stalling),整个 GPU 核心都会停滞,导致计算资源闲置。

  • Warp 切换 (Warp Switching): 为解决停滞问题,GPU 采用 Warp 切换技术。
    • 当一个 Warp 停滞时,Warp 调度器(warp scheduler)会切换去执行另一个已准备好执行的 Warp。
    • 通过这种方式,GPU 在 Warp 之间利用并行性,保持忙碌状态,从而提高整体效率。

📊 Flynn 分类法

CPU 和 GPU 等计算机架构可以通过 Flynn 分类法进行分类,该方法基于两个轴:指令(Instruction)和数据(Data),两者都可以是(Single)或(Multiple)的。

分类 简称 描述 示例
单指令单数据 SISD 处理器处理指令流和数据流。 单核 CPU
单指令多数据 SIMD 处理器处理指令流,但操作数据流。 GPU(视频中示例)
多指令多数据 MIMD 处理器可以同时处理指令流和数据流。 大多数现代多核 CPU
多指令单数据 MISD (非常罕见) -

结论:各有所长

GPU 和 CPU 携手合作,使计算更高效:

  • CPU: 针对最小化执行延迟设计,适用于通用计算和需要快速响应单个任务的场景。
  • GPU: 针对最大化执行吞吐量设计,适用于需要对大量数据进行重复操作(如向量和矩阵计算)的数学密集型场景。
posted @ 2025-10-10 10:48  Zenith_Hugh  阅读(4)  评论(0)    收藏  举报