1. GPU架构概述:从图形处理器到通用计算引擎
2006年我第一次拆开台式机箱看到那块厚重的显卡时,完全没想到这个专门负责图像输出的部件会在十几年后成为改变计算格局的核心硬件。现代GPU早已突破图形渲染的单一职能,在深度学习、科学计算等领域展现出惊人的并行处理能力。要理解这种进化,必须从最基础的架构设计说起。
与CPU的"大而全"设计哲学不同,GPU采用了"小而多"的架构思路。以NVIDIA最新发布的H100为例,其包含高达18432个CUDA核心,这些核心虽然单个计算能力远不如CPU核心,但通过大规模并行却能实现惊人的吞吐量。这种设计源自图形处理的天然特性——屏幕上每个像素的颜色计算相互独立,可以并行处理数百万个类似任务。
2. 核心架构组件深度解析
2.1 流式多处理器(SM)设计奥秘
以Ampere架构的SM为例,每个SM包含:
- 64个FP32 CUDA核心
- 4个第三代Tensor Core
- 128KB寄存器文件
- 128KB L1缓存/共享内存
这些组件通过交叉开关(crossbar)互联,实现指令级并行。实际编程时,SM会将32个线程组成一个warp进行调度,这种设计使得单个SM可以同时管理数十个warp的状态,通过零开销的上下文切换隐藏内存访问延迟。
关键提示:寄存器分配直接影响occupancy(SM中活跃warp比例)。经测试,每个线程使用超过64个32位寄存器时,GPU并行效率会明显下降。
2.2 内存子系统的层级优化
现代GPU采用金字塔式内存架构:
- 寄存器(<1周期延迟):线程私有,速度最快
- 共享内存(~20周期):Block内线程共享
- L2缓存(~200周期):所有SM共享
- 显存(>500周期):通过GDDR6/HBM2接口访问
这个结构中存在明显的性能断层。以A100为例,其显存带宽达1555GB/s,但延迟仍有约800个时钟周期。因此优化内存访问模式至关重要,比如:
- 合并访问(coalesced access):确保warp内的线程访问连续内存地址
- 银行冲突避免:共享内存分为32个bank,需避免多个线程同时访问同一bank
3. 主流GPU架构对比分析
3.1 NVIDIA架构演进路线
从费米到安培的十年间,NVIDI
