理解GPU架构:基础与关键概念

发布于:2025-08-17 ⋅ 阅读:(13) ⋅ 点赞:(0)

在这里插入图片描述

GPU 基础概述:从图形渲染到 AI 与高性能计算的核心

Graphics Processing Units(GPU)已从专用的图形渲染硬件演进为 AI、科学计算与高性能任务的中坚力量。本文将介绍 GPU 架构的基础知识,包括其组成部分、内存层次结构,以及 Streaming Multiprocessors(SM)、核(cores)、warp 与程序(programs)的角色。


CPU vs. GPU:根本区别

在这里插入图片描述

CPU(中央处理单元)与 GPU(图形处理单元)都用于处理数据,但其处理方式存在根本差异:

资料来源:tutorialspoint.com

  • CPU:拥有少量强大核心,擅长顺序或有限并行任务处理。
  • GPU:包含成千上万的较小核心,设计用于大规模并行计算,适用于图像渲染、训练 AI 模型和仿真等任务。

简言之,CPU 优化通用计算任务,而 GPU 擅长同时处理大量独立的小规模计算。


GPU 的内存层次结构

在这里插入图片描述

GPU 拥有复杂的内存层次结构以最大化计算效率。主要的内存类型包括:

SRAM(Static RAM)——最快的缓存层

位于 GPU 内核内部,包含寄存器、L1 Cache 与 L2 Cache:

  • 寄存器(Registers):每个 GPU core 内的超快小内存,用于存放核心正在处理的即时值,速度最快。
  • L1 Cache:位于每个 Streaming Multiprocessor(SM)内部的一级缓存,存储常用数据以减少对慢速内存(如 DRAM)的访问。
  • L2 Cache:跨多个 SM 共享的二级缓存,用于存放不适合放入 L1 的数据,减少对外部显存(VRAM)的依赖。

重要性:寄存器、L1、L2 减少了从较慢全局内存读取数据的次数,从而加速计算,尤其对 AI 和游戏负载的性能至关重要。它们快速但容量小,因此合理利用缓存能显著提升性能。

DRAM(Dynamic RAM)——主内存(GPU 上的 VRAM)

  • 位于显卡上,作为 VRAM(Video RAM)使用。
  • 存放大量数据,如模型权重与贴图。
  • 比 SRAM 慢但容量更大,常见类型为 GDDR(Graphics DDR)。

HBM(High Bandwidth Memory)——高性能显存

  • 用于高性能 GPU(AI 与深度学习场景)。
  • 采用堆叠式(vertical stacking)设计,降低延迟并提升带宽。
  • 比 GDDR 更快,但成本更高,常见于专业 GPU。

GPU 中的数据传输成本

从 DRAM(VRAM)向 SRAM(寄存器 / L1)移动数据代价很高,因此 kernel 优化通常聚焦于最小化这种传输。高效的内存使用能显著提升 AI 与渲染任务的性能。


Streaming Multiprocessors(SMs)及其作用

在这里插入图片描述

SM 是 GPU 的基本处理单元:

  • 每个 SM 包含多个 GPU core、少量快速内存(SRAM)与执行单元。
  • 每个 SM 可以独立运行,处理多个并行程序实例。
  • GPU 中 SM 的数量直接影响其计算能力:SM 越多,理论上并行处理能力越强。

当一个程序运行在 GPU 上时,它会被拆分到多个 SM 上,每个 SM 负责处理数据的一部分。更多的 SM 通常意味着更好的并行性能。


程序、PID 与并行执行

在 GPU 中,一个**程序(program)**是内核代码的一个并行实例。每个程序:

  • 被分配一个程序 ID(PID);
  • 处理特定的数据块;
  • 使用所在 SM 的 SRAM 来高效执行计算。

每个 SM 能同时承载的 PID 数量取决于每个程序所需的 SRAM 大小:如果每个程序占用内存过多,SM 无法并行运行太多程序,效率就会下降。


核心(Cores)、Warp 与并行性

GPU 核心:最小计算单元

  • 核心是 GPU 的最小计算单元,优化用于浮点运算(FLOPs)。
  • 每个核心大多能在每个周期执行一次浮点操作。

Warp:核心的执行组

  • GPU 的核心按 warp 分组。NVIDIA 的 warp 大小为 32,AMD 通常为 64
  • 一个 warp 内的所有核心必须同时执行同一条指令,但在不同数据上运行(SIMD 风格)。
  • warp 作为一个执行单元按 lock-step(锁步)方式运行。如果工作负载的尺寸不是 warp 大小的整数倍(例如张量形状不是 32 的倍数),部分核心会空闲,导致性能下降,这种现象称为 warp divergence

建议:在张量与数据布局上尽量使用 32 的倍数(或 AMD 上的 64 倍数),以充分利用 warp 中所有核心,减少空闲与效率损失。


优化 GPU 性能的要点

  • 减少内存传输 — 尽量降低 VRAM(DRAM)与 SRAM 之间的数据搬移次数。
  • 最大化并行度 — 通过降低每个程序的内存占用,尽量让更多 PID 在同一 SM 中并行运行。
  • 为 warp 优化工作 — 在 AI 工作负载中使用 32(或 64)为单位的维度,确保 warp 内所有核心都有可做的工作。

结论

GPU 天生适合大规模并行计算,这使得它们在 AI、深度学习、游戏渲染与模拟等领域表现卓越。理解 SM、内存层次、核心、warp 与程序执行机制,有助于你为工作负载做出更合理的优化设计。无论是在训练模型还是渲染复杂场景,高效利用 GPU 都是提升速度与可扩展性的关键。


网站公告

今日签到

点亮在社区的每一天
去签到