GPU
Graphics Processing Unit也称 图形处理器、图形处理单元、通用GPU、GPGPU、graphics processor、graphics accelerator
以大量并行执行资源和高吞吐存储系统同时处理许多相似工作项,并通过图形或通用计算编程模型接受任务的吞吐型处理器。
速览
约 1 分钟GPU把工作拆成大量线程/工作项,再以warp或wavefront等组调度到SM/CU。它擅长规则、数据并行且计算量足以摊薄调度和搬运成本的任务;分支发散、零散访存、同步、串行段和主机—设备传输都可能让大量算力闲置。
系统理解
约 3 分钟现代GPU由可扩展的多处理器/计算单元阵列构成,每个单元含多条执行通道、寄存器、调度器和局部共享存储。编程模型通常把线程组织为块/工作组,再组织为网格;硬件把线程进一步编成warp或wavefront执行。NVIDIA常以32线程warp说明SIMT,AMD不同架构可采用32或64工作项wavefront,因此“线程组宽度”不是所有GPU共有的固定常数。
SIMT让软件以独立线程表达工作,但一组线程共享指令发射资源。当同组线程走不同控制路径时,硬件需以活动掩码分别执行路径,未参与的通道暂时空闲;不同warp/wave之间可独立调度以隐藏延迟。它与传统SIMD相关但不等同:SIMD通常由软件显式操作向量,SIMT向软件暴露标量线程语义,再由硬件成组执行。
GPU性能强依赖数据供给。线程私有寄存器、块内共享存储/LDS、缓存与全局显存形成层次;相邻线程的访存能否合并、局部数据是否复用、寄存器和共享存储占用是否允许足够多线程驻留,共同决定有效带宽与占用率。提高占用率不是最终目标:若算法受指令、同步或带宽限制,更多驻留线程不一定提高性能。
GPU从图形流水线扩展到科学计算、AI和媒体处理,但不同产品的固定功能、矩阵/张量单元、数据类型、缓存一致性和主机连接差异很大。CPU擅长低延迟控制和复杂串行任务,GPU擅长高并行吞吐;异构系统的收益必须扣除数据搬运、内核启动、同步、精度变化和不可并行部分。
以CPU与芯片架构为前置,连接并行编程、HBM/DRAM、先进封装、片间互连、AI与科学计算工作负载。
公式提示
关键参数
| 参数 | 单位 | 含义 |
|---|---|---|
| warp / wavefront宽度 | thread or work-item | 硬件成组执行粒度,随厂商和架构变化 |
| 占用率与资源用量 | — | 寄存器、共享存储和块大小共同限制同一计算单元的驻留工作组 |
| 有效显存带宽与访问合并 | B/s | 实际有用数据流量和物理事务效率,决定带宽受限工作负载 |
| 分支发散、同步与主机传输 | — | 分别损失执行通道、引入等待,并增加异构端到端开销 |
常见误区
- 认为GPU核心数量可以与CPU核心数量直接比较
- 认为所有GPU都固定以32线程为一个执行组
- 认为线程越多或占用率越高,程序一定越快
- 认为GPU天然适合所有AI、科学计算或串行控制任务
工程深入
12 条结论吞吐型并行处理器
线程层次与硬件映射
发散、同步与延迟隐藏
存储层次与带宽效率
资源占用与性能判据
异构系统与适用边界
出处
4 份资料 · 4 处引用- 1
CUDA Programming Guide
- CUDA Programming Guide,sections: Programming Model、Writing SIMT Kernels、Hardware Implementation and Memory Hierarchy,accessed 2026-07-28 支持:GPU以大量相似工作项的吞吐为主要优化目标;网格、工作组和线程最终映射到计算单元;SIMT以线程语义表达、以线程组共同发射;warp或wavefront宽度不是GPU通用常数;同组线程分支发散会降低通道利用率;多执行组驻留用切换隐藏长延迟;寄存器、共享存储和全局显存承担不同复用范围;高峰值带宽仍可能被零散访问浪费;有效带宽必须按实际有用数据和时间计算;占用率描述驻留能力而不是应用性能;主机—设备搬运和启动会侵蚀小任务收益;峰值算力不等于工作负载可实现性能
- 2
CMOS超大规模集成电路设计(第4版)
- 第 11 章 §§11.1–11.11,第 364–421, 页 支持:GPU以大量相似工作项的吞吐为主要优化目标;主机—设备搬运和启动会侵蚀小任务收益
- 3
ROCm GPU Architecture Documentation
- ROCm Documentation,sections: Device hardware glossary、Hardware implementation、GPU hardware specifications,accessed 2026-07-28 支持:网格、工作组和线程最终映射到计算单元;SIMT以线程语义表达、以线程组共同发射;warp或wavefront宽度不是GPU通用常数;同组线程分支发散会降低通道利用率;多执行组驻留用切换隐藏长延迟;寄存器、共享存储和全局显存承担不同复用范围;高峰值带宽仍可能被零散访问浪费;有效带宽必须按实际有用数据和时间计算;占用率描述驻留能力而不是应用性能;峰值算力不等于工作负载可实现性能
- 4